Laravel Scheduler Tutorial

Laravel Scheduler Tutorial
Einige Aufgaben müssen in jeder Anwendung regelmäßig ausgeführt werden, und es wäre effizienter, wenn die Aufgaben automatisch erledigt werden könnten. Das Laravel -Framework erleichtert diese Art von Aufgaben, indem sie Laravel Scheduler verwenden. Senden von Angebotsbulk-E-Mails, Optimierung von Daten, Generieren von Berichten, Durchführung von Anwendungssicherungen und Entfernen inaktiver Benutzer sind einige häufige Beispiele für die sich wiederholenden Aufgaben, die mit dem Laravel-Scheduler ausgeführt werden können. Laravel kann bestimmte Aufgaben regelmäßig ausführen, indem ein integrierter Task-Manager namens verwendet wird Mais Arbeit. Die Konfigurationsdatei benannt Corntab wird verwendet von Mais Planungsaufgaben verwalten. Dieses Tutorial zeigt Ihnen, wie Sie sich wiederholte Aufgaben durch Erstellen verwalten können Mais Jobs und Aufgabenplanung durchführen.

Voraussetzungen

Bevor Sie dieses Tutorial beginnen, erledigen Sie zunächst die folgenden Aufgaben:

  1. Erstellen Sie ein neues Laravel -Projekt
  2. Richten Sie die Datenbankverbindung ein
  3. Führen Sie den Befehl migrate aus, erstellen Sie eine Benutzertabelle
  4. Richten Sie die Konfiguration zum Senden von E -Mails ein (SMTP wird hier zum Senden von E -Mails verwendet.)

Standardauthentifizierung implementieren

Implementieren Sie zunächst das Standard -Benutzerauthentifizierungssystem von Laravel, um die in diesem Tutorial gezeigte Planungsaufgabe abzuschließen. Führen Sie die folgenden Befehle aus dem Terminal aus, um die Standard -Laravel -Authentifizierung mit VUE zu implementieren.

$ Composer benötigt Laravel/UI
$ php Artisan UI Vue -auth

Führen Sie den folgenden Befehl aus, um das frische Gerüst zu kompilieren, um den aktualisierten Inhalt zu erhalten.

$ npm install && npm run dev

Führen Sie den folgenden Befehl aus, um den Routencache zu löschen.

$ php Artisan Route: klar

Führen Sie den folgenden Befehl aus, um den Laravel Development Server zu starten und zu überprüfen, ob das Standard -Benutzerauthentifizierungssystem funktioniert.

$ php Artisan servieren

Öffnen Sie jeden Browser und führen Sie die folgende URL im Browser aus. Wenn der Anmeldung Und registrieren Link erscheint und funktioniert ordnungsgemäß, dann wurde die Implementierung der Standardauthentifizierung ordnungsgemäß abgeschlossen.

http: // localhost: 8000

Erstellen Sie einen mailfähigen Befehls- und Handwerkerbefehl

Viele neue Benutzer erstellen täglich Konten und führen viele Aufgaben im Zusammenhang mit registrierten Benutzern aus, wenn das Projekt online ist. Manchmal muss die Anwendung wissen, wie viele Benutzer jeden Tag Konten erstellt haben. Wenn diese Informationen regelmäßig erforderlich sind, ist es besser, eine bestimmte Abfrage nach einem regulären Intervall auszuführen. Hier wird ein Laravel -Befehl verwendet, um die Informationen der aktuell registrierten Benutzer zu erhalten, und eine mailable Klasse wird verwendet, um diese Informationen per E -Mail an den Administrator oder eine bestimmte Person zu senden.

Führen Sie den folgenden Befehl aus, um die mailable Klasse zum Senden der E -Mail zu erstellen. Es wird eine Datei namens erstellt SENDUSERSLIST.Php am Ort App/Mail.

$ Php Artisan Make: Mail SendUsersList

Öffnen Sie die Datei und ändern Sie den Inhalt wie im folgenden Code.

Namespace App \ Mail;
Verwenden Sie Illuminate \ Bus \ Queueable;
Verwenden Sie Illuminate \ Contracts \ Queue \ SollteQueue;
Verwenden Sie Illuminate \ Mail \ Mailable;
Verwenden Sie Illuminate \ Queue \ SerializesModels;
Klasse SendUserSlist erweitert mailableable

Verwenden Sie anhörbar, serializesModels;
/ * Eine Array -Variable deklarieren */
public $ userList = array ();
/**
* Erstellen Sie eine neue Nachrichteninstanz.
*
* @return void
*/
Öffentliche Funktion __construct ($ UserList)

/* Initialisieren Sie die Array -Variable durch die von der übergebene Variable
Objekterstellung der Klasse. */
$ this-> userList = $ userList;

/**
* Erstellen Sie die Nachricht.
*
* @return $ this
*/
öffentliche Funktion Build ()

/ * Diapling die Ansichtsdatei mit den Werten der Array -Variablen */Diplom
$ this-> view ('registrierte')-> mit ('userList', $ this-> userList) zurückgeben;

Führen Sie den folgenden Befehl aus, um den benutzerdefinierten Laravel -Befehl benannt zu erstellen RegisterUserSlist, Dadurch wird die Abfrage ausgeführt, um die Liste der registrierten Benutzerinformationen an jedem Tag zu erhalten. Der Befehl erstellt eine Datei mit dem Namen RegisterUserSlist.Php am Ort App/Befehle.

$ Php Artisan Make: Command RegisterUsersList --Command = Registriert: Benutzer

Öffnen Sie die Datei und ändern Sie den Inhalt mit dem folgenden Code, um die Liste der derzeit registrierten Benutzer des aktuellen Systems an eine bestimmte E -Mail -Adresse zu senden.

Namespace App \ Console \ Befehle;
Verwenden Sie Illuminate \ Console \ Command;
/ * Importieren die notwendigen Pakete *////
Post verwenden;
Verwenden Sie App \ Mail \ senduserslist;
DB verwenden;
Verwenden Sie Kohlenstoff \ Kohlenstoff;
Verwenden Sie App \ Console \ Befehle \ DateTime;
Klasse RegisterUserSlist erweitert den Befehl

/**
* Der Name und die Unterschrift des Konsolenbefehls.
*
* @var String
*/
/ * Signaturwert hinzufügen *//
geschützt $ signature = 'registriert: Benutzer';
/**
* Die Beschreibung der Konsolenbefehlsbeschreibung.
*
* @var String
*/
geschützt $ Beschreibung = 'Liste der registrierten Benutzer';
/**
* Erstellen Sie eine neue Befehlsinstanz.
*
* @return void
*/
Öffentliche Funktion __construct ()

Elternteil :: __ construct ();

/**
* Führen Sie den Konsolenbefehl aus.
*
* @return int
*/
öffentliche Funktion Handle ()

/ * Lesen Sie das aktuelle Systemdatum */
$ heute = carbon :: now ()-> toDateString ();
/* Erhalten Sie die Liste der Benutzerinformationen, die registriert sind
im aktuellen Systemdatum */
$ current_registered_users =
Db :: table ('user')-> wheredate ('created_at', $ heute)-> get ()-> toArray ();
/* Erstellen Sie das Objekt der mailbaren Klasse mit der Array -Variablen
Das enthält die aktuell registrierte Benutzerliste */
$ mail = new sendUserSlist ($ current_registered_users);
/ * E -Mail mit der E -Mail -Klasse senden *//
Mail :: an ('Empfänger-E-Mail-Adresse')-> Senden ($ mail);

Richten Sie den Zeitplan ein, um den Befehl auszuführen

Öffne das Kernel.Php Datei aus dem Speicherort App/Konsole und ändern Sie den Inhalt mit dem folgenden Code. Sie können verschiedene Arten von Zeitplanfrequenzoptionen festlegen. Sie können die Liste von diesem Link erhalten. Hier wird der Stundenplan verwendet.

Namespace App \ Konsole;
Verwenden Sie Illuminate \ Console \ Planing \ Zeitplan;
Verwenden Sie Illuminate \ Foundation \ Console \ Kernel als Consolekernel;
Klassenkernel erweitert Consolekernel

/**
* Die von Ihrer Bewerbung bereitgestellten handwerklichen Befehle.
*
* @var Array
*/
/ * Intialisieren Sie die $ Commands Variable */
geschützt $ commands = [
'App \ Console \ Befehle \ RegisterUsersList' ',
];
/**
* Definieren Sie den Befehlsplan der Anwendung.
*
* @param \ Illuminate \ Console \ Planing \ Zeitplan $ Zeitplan
* @return void
*/
geschützter Funktionsplan (Zeitplan $ Zeitplan)

/ * Setzen Sie den Zeitplan stündlich *////
$ plan-> command ('registriert: Benutzer')-> stündlich ();

/**
* Registrieren Sie die Befehle für die Anwendung.
*
* @return void
*/
geschützte Funktionsbefehle ()

$ this-> laden (__ Dir__.'/Befehle');
erfordern Base_path ('Routen/Konsole.PHP ');

Ansicht erstellen

Erstellen die Registrierte Liste.Klinge.Php Datei mit dem folgenden Code anzeigen.


@if (count ($ userList)> 0)

Die heute registrierte Benutzerliste finden Sie unten:


@foreach ($ userList als $ user)
$ user-> name

@endforach
@anders
Noch ist noch kein Benutzer registriert.
@endif

Führen Sie den Befehl aus:

Führen Sie die folgenden Befehle aus, um den Cache zu löschen.

$ php Artisan Cache: klar
$ Php Artisan Config: Cache

Führen Sie den folgenden Kunsthandwerksanschluss aus dem Terminal aus, um den zuvor erstellten benutzerdefinierten Befehl auszuführen und die Ausgabe zu überprüfen.

$ php Artisan registriert: Benutzer

Überprüfen Sie die E -Mail -Adresse des Empfängers, um die Ausgabe herauszufinden. Die folgende Ausgabe wird angezeigt, wenn kein Benutzer erstellt wird.

Erstellen Sie ein neues Benutzerkonto und überprüfen Sie die E -Mail erneut.

Abschluss

Der Laravel -Scheduler erleichtert sich wiederholende Aufgaben für die Anwendung. Nach dem Lesen dieses Tutorials sollten die Leser nun ein klares Verständnis der Konzepte des Erstellens benutzerdefinierter Befehle und der Implementierung automatisierter Aufgaben mit Laravel Scheduler haben.