laravel

Výukový program pre Laravel Scheduler

Výukový program pre Laravel Scheduler
Niektoré úlohy sa pravidelne vykonávajú v akejkoľvek aplikácii a bolo by efektívnejšie, keby sa úlohy dali robiť automaticky. Rámec Laravel uľahčuje tieto typy úloh používaním Laravel Scheduler. Posielanie hromadných e-mailov týkajúcich sa ponúk, optimalizácia údajov, generovanie správ, uchovávanie zálohy aplikácií a odstraňovanie neaktívnych používateľov sú niektoré bežné príklady opakujúcich sa úloh, ktoré je možné vykonať pomocou Laravel Scheduler. Laravel môže pravidelne vykonávať konkrétne úlohy pomocou zabudovaného správcu úloh s názvom Kukurica zamestnanie. Konfiguračný súbor s názvom Corntab používa sa Kukurica na správu plánovacích úloh. Tento tutoriál vám ukáže, ako spravovať opakujúce sa úlohy vytváraním Kukurica úlohy a vykonávanie plánovania úloh.

Predpoklady

Pred začatím tohto tutoriálu najskôr vykonajte nasledujúce úlohy:

  1. Vytvorte nový projekt Laravel
  2. Nastavte pripojenie k databáze
  3. Spustite príkaz migrate a vytvorte tabuľku používateľov
  4. Nastavte konfiguráciu pre odosielanie e-mailov (tu sa používa SMTP na odosielanie e-mailov.)

Implementujte predvolené overenie

Najskôr implementujte predvolený systém autentifikácie používateľa Laravel, aby ste dokončili úlohu plánovania uvedenú v tomto návode. Spustením nasledujúcich príkazov z terminálu implementujte predvolené overenie laravel pomocou Vue.

$ skladateľ vyžaduje laravel / ui
$ php remeselník ui vue -auth

Spustením nasledujúceho príkazu zostavte čerstvé lešenie, aby ste získali aktualizovaný obsah.

$ npm inštalácia && npm spustiť dev

Spustením nasledujúceho príkazu vymažete medzipamäť trasy.

Trasa remeselníka $ php: jasná

Spustením nasledujúceho príkazu spustíte vývojový server Laravel a skontrolujte, či funguje predvolený systém overovania používateľov.

$ php remeselník slúži

Otvorte ľubovoľný prehľadávač a v prehliadači spustite nasledujúcu adresu URL. Ak Prihlásiť sa a Registrovať odkaz sa zobrazí a funguje správne, potom bola implementácia predvoleného overenia totožnosti dokončená správne.

http: // localhost: 8000

Vytvorte Mailable Class a Artisan Command

Mnoho nových používateľov bude vytvárať účty každý deň a bude vykonávať veľa úloh týkajúcich sa registrovaných používateľov, keď je projekt online. Aplikácia niekedy potrebuje vedieť, koľko používateľov si každý deň vytvorilo účty. Ak sú tieto informácie požadované pravidelne, je lepšie vykonať konkrétny dopyt po pravidelnom intervale. Tu sa používa príkaz Laravel na získanie informácií o aktuálne registrovaných používateľoch a na odosielanie týchto informácií e-mailom správcovi alebo určenej osobe sa použije trieda mailable.

Spustením nasledujúceho príkazu vytvorte zostaviteľnú triedu na odosielanie e-mailov. Vytvorí sa súbor s názvom SendUsersList.php na danom mieste aplikácia / pošta.

$ php remeselník make: mail SendUsersList

Otvorte súbor a upravte obsah, ako je uvedené v nasledujúcom kóde.

menný priestor App \ Mail;
použitie Illuminate \ Bus \ Queueable;
použite Illuminate \ Contracts \ Queue \ ShouldQueue;
použite Illuminate \ Mail \ Mailable;
použite Illuminate \ Queue \ SerializesModels;
trieda SendUsersList rozširuje možnosť Mailable

používať Queueable, SerializesModels;
/ * Deklarujte premennú poľa * /
public $ userList = array ();
/ **
* Vytvorte novú inštanciu správy.
*
* @return neplatné
* /
verejná funkcia __construct ($ userList)

/ * Inicializuje premennú poľa premennou odovzdanou
objektové vytvorenie triedy. * /
$ this-> userList = $ userList;

/ **
* Vytvorte správu.
*
* @ návrat $ this
* /
zostavenie verejnej funkcie ()

/ * Zahrajte zobrazený súbor s hodnotami premennej poľa * /
vrátiť $ this-> view ('registeredList') -> with ('userList', $ this-> userList);

Spustením nasledujúceho príkazu vytvorte vlastný príkaz Laravel s názvom RegisterUsersList, ktorý vykoná dopyt a získa zoznam informácií registrovaných používateľov každý deň. Príkaz vytvorí súbor s názvom RegisterUsersList.php na danom mieste aplikácia / Príkazy.

$ php artisan make: command RegisterUsersList --command = registered: users

Otvorte súbor a upravte obsah pomocou nasledujúceho kódu, aby sa zoznam konkrétnych registrovaných používateľov aktuálneho systému odoslal na konkrétnu e-mailovú adresu.

menný priestor App \ Console \ Commands;
použite Illuminate \ Console \ Command;
/ * Import potrebných balíkov * /
používať Mail;
používať App \ Mail \ SendUsersList;
použite DB;
používať uhlík \ uhlík;
používať App \ Console \ Commands \ DateTime;
trieda RegisterUsersList rozširuje príkaz

/ **
* Názov a podpis príkazu konzoly.
*
* @var reťazec
* /
/ * Pridať hodnotu podpisu * /
protected $ signature = 'registered: users';
/ **
* Popis príkazu konzoly.
*
* @var reťazec
* /
protected $ description = 'Zoznam registrovaných užívateľov';
/ **
* Vytvorte novú inštanciu príkazu.
*
* @return neplatné
* /
verejná funkcia __construct ()

parent :: __ construct ();

/ **
* Vykonajte príkaz konzoly.
*
* @return int
* /
verejná funkcia handle ()

/ * Prečítajte si aktuálny systémový dátum * /
$ today = Carbon :: now () -> toDateString ();
/ * Získajte zoznam informácií o používateľoch, ktorí sú registrovaní
v aktuálnom systémovom dátume * /
$ current_registered_users =
DB :: table ('users') -> whereDate ('created_at', $ today) -> get () -> toArray ();
/ * Vytvorte objekt triedy mailable s premennou poľa
ktorý obsahuje zoznam aktuálne registrovaných používateľov * /
$ email = new SendUsersList ($ current_registered_users);
/ * Posielanie e-mailov pomocou triedy Mail * /
Mail :: to ('email address recipient') -> send ($ email);

Nastavte plán vykonania príkazu

Otvor Jadro.php súbor z umiestnenia aplikácia / konzola a upravte obsah pomocou nasledujúceho kódu. Môžete nastaviť rôzne typy možností frekvencie plánovania. Zoznam získate z tohto odkazu. Tu sa používa hodinový rozvrh.

menný priestor App \ Console;
použite Illuminate \ Console \ Scheduling \ Schedule;
použite Illuminate \ Foundation \ Console \ Kernel ako ConsoleKernel;
triedy jadro rozširuje ConsoleKernel

/ **
* Príkazy remeselníka poskytované vašou aplikáciou.
*
* @var pole
* /
/ * Inicializujte premennú $ commands * /
chránené $ príkazy = [
„App \ Console \ Commands \ RegisterUsersList“,
];
/ **
* Definujte plán príkazov aplikácie.
*
* @param \ Illuminate \ Console \ Scheduling \ Schedule $ schedule
* @return neplatné
* /
plán chránených funkcií (plán rozvrhu $)

/ * Nastaviť hodinový rozvrh * /
$ schedule-> command ('registered: users') -> hourly ();

/ **
* Zaregistrujte príkazy pre aplikáciu.
*
* @return neplatné
* /
príkazy chránených funkcií ()

$ this-> načítať (__ DIR__.„/ Príkazy“);
vyžadujú base_path ('trasy / konzola.php ');

Vytvoriť pohľad

Vytvorte registeredList.čepeľ.php zobraziť súbor s nasledujúcim kódom.


@if (count ($ userList)> 0)

Zoznam registrovaných používateľov je uvedený nižšie:


@foreach ($ userList ako $ user)
$ user-> meno

@endforeach
@ alse
Zatiaľ nie je registrovaný žiadny používateľ.
@koniec Ak

Spustite príkaz:

Spustením nasledujúcich príkazov vymažte vyrovnávaciu pamäť.

Cache remeselníka $ php: vyčistiť
$ php remeselník config: cache

Spustením nasledujúceho remeselného príkazu z terminálu vykonajte predtým vytvorený vlastný príkaz a skontrolujte výstup.

$ php remeselník registrovaný: používatelia

Skontrolujte výstupnú e-mailovú adresu príjemcu. Nasledujúci výstup sa zobrazí, ak nie je vytvorený žiadny užívateľ.

Vytvorte nový používateľský účet a znova skontrolujte e-mail.

Záver

Laravel Scheduler uľahčuje vykonávanie opakujúcich sa úloh aplikácie. Po prečítaní tohto tutoriálu by teraz čitatelia mali mať jasnú predstavu o konceptoch vytvárania vlastných príkazov a implementácii automatizovaných úloh pomocou Laravel Scheduler.

Hry Ako zobraziť prekrytie OSD v linuxových aplikáciách a hrách na celú obrazovku
Ako zobraziť prekrytie OSD v linuxových aplikáciách a hrách na celú obrazovku
Hranie hier na celú obrazovku alebo používanie aplikácií v režime rozptýlenia zadarmo na celú obrazovku vás môže odrezať od relevantných systémových i...
Hry Top 5 kariet na zachytávanie hier
Top 5 kariet na zachytávanie hier
Všetci sme videli a milovali streamovanie hier na YouTube. PewDiePie, Jakesepticye a Markiplier sú iba niektorí z najlepších hráčov, ktorí zarobili mi...
Hry Ako vyvíjať hru v systéme Linux
Ako vyvíjať hru v systéme Linux
Pred desiatimi rokmi by len málo používateľov Linuxu predpovedalo, že ich obľúbený operačný systém bude jedného dňa populárnou hernou platformou pre k...