Samouczek Laravel Scheduler

Samouczek Laravel Scheduler
Niektóre zadania są wymagane do regularnego wykonywania w dowolnej aplikacji i byłoby bardziej wydajne, gdyby zadania mogły być wykonane automatycznie. Framework LaraVel ułatwia tego rodzaju zadania za pomocą laravel harmonogram. Wysyłanie e-maili zbiorczych związanych z ofertą, optymalizacja danych, generowanie raportów, utrzymywanie kopii zapasowych aplikacji i usuwanie nieaktywnych użytkowników to kilka powszechnych przykładów powtarzalnych zadań, które można wykonać za pomocą laravel Scheduler. Laravel może okresowo wykonywać określone zadania za pomocą wbudowanego menedżera zadań o nazwie kukurydza stanowisko. Plik konfiguracyjny nazwany Corntab jest używany przez kukurydza Aby zarządzać zadaniami planowania. Ten samouczek pokazuje, jak zarządzać powtarzającymi się zadaniami, tworząc kukurydza zadania i wykonywanie planowania zadań.

Wymagania wstępne

Przed rozpoczęciem tego samouczka, najpierw wykonaj następujące zadania:

  1. Utwórz nowy projekt Laravel
  2. Skonfiguruj połączenie bazy danych
  3. Uruchom polecenie migracyjne Utwórz tabelę użytkowników
  4. Skonfiguruj konfigurację wysyłania wiadomości e -mail (SMTP jest używany tutaj do wysyłania wiadomości e -mail.)

Zaimplementuj domyślne uwierzytelnianie

Najpierw zaimplementuj domyślny system uwierzytelniania użytkownika Laravel, aby wykonać zadanie planowania pokazane w tym samouczku. Uruchom następujące polecenia z terminala, aby zaimplementować domyślne uwierzytelnianie Laravel za pomocą Vue.

$ Composer wymaga Laravel/UI
$ PHP Artisan Ui vue -Auth

Uruchom następujące polecenie, aby skompilować świeże rusztowanie, aby uzyskać zaktualizowaną zawartość.

$ npm install && npm uruchom dev

Uruchom następujące polecenie, aby wyczyścić pamięć podręczną trasy.

$ PHP Artisan Route: Wyczyść

Uruchom następujące polecenie, aby uruchomić serwer Laravel Development i sprawdź, czy domyślny system uwierzytelniania użytkownika działa.

$ PHP Artisan Serve

Otwórz dowolną przeglądarkę i uruchom następujący adres URL w przeglądarce. Jeśli Zaloguj sie I rejestr Link pojawia się i działa poprawnie, wówczas implementacja domyślnego uwierzytelniania została poprawnie zakończona.

http: // localhost: 8000

Utwórz klasę wysyłkową i dowództwo rzemieślnicze

Wielu nowych użytkowników będzie tworzyć konta codziennie i wykona wiele zadań związanych z zarejestrowanymi użytkownikami, gdy projekt jest online. Czasami aplikacja musi wiedzieć, ilu użytkowników tworzyło konta każdego dnia. Jeśli te informacje są wymagane regularnie, lepiej jest wykonać określone zapytanie po regularnym odstępie czasu. Komenda Laravel jest tutaj używana do uzyskania informacji aktualnie zarejestrowanych użytkowników, a klasa wysyłkowa służy do wysyłania tych informacji za pośrednictwem poczty elektronicznej do administratora lub określonej osoby.

Uruchom następujące polecenie, aby utworzyć klasę pocztową w celu wysyłania wiadomości e -mail. Utworzy plik o nazwie SendUsersList.php w miejscu App/Mail.

$ PHP Artisan Make: Mail SentusersList

Otwórz plik i zmodyfikuj treść, jak w następującym kodzie.

APPAME APP APP \ Mail;
Użyj Illuminate \ Bus \ Queueble;
Użyj Illuminate \ Contracts \ Queue \ shourqueue;
Użyj Illuminate \ Mail \ Mailable;
Użyj Illuminate \ queue \ serializeModels;
Klasa SendUsersList rozszerza wysyłkę

Użyj Queue, serializeModels;
/ * Deklaruj zmienną tablicy */
public $ userList = array ();
/**
* Utwórz nową instancję wiadomości.
*
* @return void
*/
Funkcja publiczna __Construct ($ UserList)

/* Zainicjuj zmienną tablicy przez zmienną przekazaną przez
Tworzenie obiektów klasy. */
$ this-> UserList = $ UserList;

/**
* Zbuduj wiadomość.
*
* @return $ to
*/
Funkcja publiczna kompilacja ()

/ * Dilay plik widoku z wartościami zmiennej tablicy */
return $ this-> view („RegisterEdList”)-> z ('userList', $ this-> UserList);

Uruchom następujące polecenie, aby utworzyć niestandardowe polecenie Laravel o nazwie RejestrUsersList, które wykonają zapytanie, aby uzyskać listę informacji o zarejestrowanych użytkowników każdego dnia. Polecenie utworzy plik o nazwie RejestrUsersList.php w miejscu App/polecenia.

$ PHP Artisan Make: Command RegisterUsersList - -command = zarejestrowany: Użytkownicy

Otwórz plik i zmodyfikuj zawartość następującym kodem, aby wysłać listę aktualnie zarejestrowanych użytkowników bieżącego systemu na konkretny adres e -mail.

przestrzeń nazwy app \ console \ commands;
Użyj Illuminate \ Console \ Command;
/ * Zaimportuj niezbędne pakiety */
Użyj poczty;
Użyj App \ Mail \ SendUsersList;
Użyj db;
Użyj węgla \ węglowego;
Użyj App \ Console \ Commands \ DateTime;
Klasa RegisterUsersList rozszerza polecenie

/**
* Nazwa i podpis polecenia konsoli.
*
* String @VAR
*/
/ * Dodaj wartość podpisu */
Protected $ signature = 'zarejestrowany: Users';
/**
* Opis polecenia konsoli.
*
* String @VAR
*/
Protected $ Opis = „Lista zarejestrowanych użytkowników”;
/**
* Utwórz nową instancję poleceń.
*
* @return void
*/
funkcja publiczna __Construct ()

rodzic :: __ Construct ();

/**
* Wykonaj polecenie konsoli.
*
* @return int
*/
Publiczny uchwyt funkcji ()

/ * Przeczytaj bieżącą datę systemu */
$ dziś = Carbon :: now ()-> Todatestring ();
/* Uzyskaj listę informacji użytkowników, którzy są zarejestrowani
W bieżącej dacie systemowej */
$ current_registered_users =
Db :: tabela („Użytkownicy”)-> wheredate („Created_at”, $ dziś)-> get ()-> toArray ();
/* Utwórz obiekt klasy wysyłkowej ze zmienną tablicy
który zawiera aktualnie zarejestrowaną listę użytkowników */
$ e -mail = new SendUsersList ($ current_registered_users);
/ * Wyślij e -mail za pomocą klasy pocztowej */
Mail :: do („Adres e-mail odbiornika”)-> Wyślij ($ e-mail);

Skonfiguruj harmonogram wykonania polecenia

Otworzyć Jądro.php Plik z lokalizacji App/konsola i zmodyfikuj treść za pomocą następującego kodu. Możesz ustawić różne rodzaje opcji częstotliwości harmonogramu. Możesz uzyskać listę z tego linku. Tutaj używany jest harmonogram godzinowy.

przestrzeń nazw app \ console;
Użyj Illuminate \ Console \ Planowanie \ harmonogram;
Użyj Illuminate \ Foundation \ Console \ Kernel jako Consolekernel;
Kernel klasy rozszerza Consolekernel

/**
* Polecenia rzemieślnicze dostarczone przez Twoją aplikację.
*
* @VAR Array
*/
/ * Intializuj zmienną $ poleceń */
chronione $ Commands = [
„App \ console \ commands \ RegisterUsersList”,
];
/**
* Zdefiniuj harmonogram poleceń aplikacji.
*
* @param \ iluminate \ console \ harmonogram \ harmonogram $ harmonogram
* @return void
*/
Harmonogram funkcji chronionych (harmonogram $)

/ * Ustaw harmonogram co godzinę */
$ harmonogram-> command („Zarejestrowany: Users”)-> Hourly ();

/**
* Zarejestruj polecenia aplikacji.
*
* @return void
*/
Chronione polecenia funkcji ()

$ this-> ładuj (__ dir__.'/Polecenia');
Wymagaj base_path („trasy/konsola.php ');

Utwórz widok

Utwórz rejestrowana lista.ostrze.php Zobacz plik z następującym kodem.


@if (count ($ userList)> 0)

Lista zarejestrowanych dziś użytkowników podano poniżej:


@ForEach ($ UserList jako $ użytkownik)
$ user-> nazwa

@endForeach
@w przeciwnym razie
Dziś nie jest jeszcze zarejestrowany użytkownika.
@endif

Uruchom polecenie:

Uruchom następujące polecenia, aby wyczyścić pamięć podręczną.

$ PHP Artisan Cache: Wyczyść
$ PHP Artisan Config: pamięć podręczna

Uruchom następujące polecenie Artisan z terminala, aby wykonać wcześniej utworzone polecenie niestandardowe i sprawdź wyjście.

$ PHP Artisan zarejestrowany: Użytkownicy

Sprawdź adres e -mail odbiornika, aby znaleźć wyjście. Pojawi się następujące dane wyjściowe, jeśli nie zostanie utworzony użytkownik.

Utwórz nowe konto użytkownika i ponownie sprawdź wiadomość e -mail.

Wniosek

Harmonogram laravel ułatwia powtarzające się zadania dla aplikacji. Po przeczytaniu tego samouczka czytelnicy powinni teraz dobrze zrozumieć pojęcia tworzenia niestandardowych poleceń i wdrażania automatycznych zadań za pomocą laravel harmonogram.