laravel

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 durch die Verwendung von Laravel Scheduler. Das Senden von angebotsbezogenen Massen-E-Mails, das Optimieren von Daten, das Erstellen von Berichten, das Aufbewahren von Anwendungs-Backups und das Entfernen inaktiver Benutzer sind einige gängige Beispiele für sich wiederholende Aufgaben, die mit dem Laravel Scheduler ausgeführt werden können. Laravel kann bestimmte Aufgaben regelmäßig ausführen, indem es einen integrierten Task-Manager namens . verwendet Mais Job. Die Konfigurationsdatei namens Corntab wird verwendet von Mais um Planungsaufgaben zu verwalten. Dieses Tutorial zeigt Ihnen, wie Sie sich wiederholende Aufgaben verwalten, indem Sie Mais Jobs und Durchführen von Aufgabenplanung.

Voraussetzungen

Bevor Sie mit diesem Tutorial beginnen, führen Sie zunächst die folgenden Aufgaben aus:

  1. Erstellen Sie ein neues Laravel-Projekt
  2. Datenbankverbindung einrichten
  3. Führen Sie den Migrationsbefehl aus, um eine Benutzertabelle zu erstellen
  4. Richten Sie die Konfiguration für den E-Mail-Versand ein (SMTP wird hier zum Versenden von E-Mails verwendet.)

Implementieren der Standardauthentifizierung

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

$ Komponist benötigt laravel/ui
$ php Handwerker ui vue -auth

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

$ npm installieren && npm ausführen dev

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

$ php Handwerkerroute: klar

Führen Sie den folgenden Befehl aus, um den Laravel-Entwicklungsserver zu starten und zu überprüfen, ob das standardmäßige Benutzerauthentifizierungssystem funktioniert.

$ php Handwerker dienen

Öffnen Sie einen beliebigen Browser und führen Sie die folgende URL im Browser aus. Wenn die Anmeldung und registrieren Link angezeigt wird und ordnungsgemäß funktioniert, wurde die Implementierung der Standardauthentifizierung ordnungsgemäß abgeschlossen.

http://localhost:8000

Erstellen Sie eine versandfähige Klasse und einen 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 täglich Konten erstellt haben. Wenn diese Informationen regelmäßig benötigt werden, ist es besser, eine bestimmte Abfrage in regelmäßigen Abständen auszuführen. Hier wird ein Laravel-Befehl verwendet, um die Informationen der derzeit registrierten Benutzer zu erhalten, und eine mailfähige Klasse wird verwendet, um diese Informationen per E-Mail an den Admin 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 Standort App/Mail.

$ php Handwerker 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\ShouldQueue;
verwenden Sie Illuminate\Mail\Mailable;
Verwenden Sie Illuminate\Queue\SerializesModels;
Klasse SendUsersList erweitert Mailable

Verwenden Sie Queueable, SerializesModels;
/* Eine Array-Variable deklarieren */
public $userList= array();
/**
* Erstellen Sie eine neue Nachrichteninstanz.
*
* @return ungültig
*/
öffentliche Funktion __construct($userList)

/* Initialisiere die Array-Variable durch die Variable, die von der übergeben wurde
Objekterstellung der Klasse. */
$this->userList = $userList;

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

/* Anzeige der View-Datei mit den Werten der Array-Variablen */
return $this->view('registeredList')->with('userList',$this->userList);

Führen Sie den folgenden Befehl aus, um den benutzerdefinierten Laravel-Befehl namens . zu erstellen RegistrierenBenutzerliste, die die Abfrage ausführt, um die Liste der registrierten Benutzerinformationen an jedem Tag zu erhalten. Der Befehl erstellt eine Datei namens RegistrierenBenutzerliste.php am Standort App/Befehle.

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

Ö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\Commands;
Verwenden Sie Illuminate\Console\Command;
/* Notwendige Pakete importieren */
E-Mail verwenden;
verwenden Sie App\Mail\SendUsersList;
DB verwenden;
Kohlenstoff\Kohlenstoff verwenden;
verwenden Sie App\Console\Commands\DateTime;
Klasse RegisterUsersList erweitert Command

/**
* Der Name und die Signatur des Konsolenbefehls.
*
* @var-String
*/
/* Signaturwert hinzufügen */
protected $signature = 'registrierte:Benutzer';
/**
* Die Beschreibung des Konsolenbefehls.
*
* @var-String
*/
protected $description = 'Liste der registrierten Benutzer';
/**
* Erstellen Sie eine neue Befehlsinstanz.
*
* @return ungültig
*/
öffentliche Funktion __construct()

parent::__construct();

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

/* Aktuelles Systemdatum lesen */
$heute =Carbon::now()->toDateString();
/* Liste der registrierten Benutzerinformationen abrufen
im aktuellen Systemdatum */
$current_registered_users =
DB::table('users')->whereDate('created_at', $today)->get()->toArray();
/* Erzeuge das Objekt der mailable-Klasse mit der Array-Variablen
die die aktuell registrierte Benutzerliste enthält */
$email = new SendUsersList($current_registered_users);
/* E-Mail mit Mail-Klasse senden */
Mail::to('E-Mail-Adresse des Empfängers')->send($email);

Einrichten des Zeitplans zum Ausführen des Befehls

Öffne das Kernel.php Datei vom Speicherort App/Konsole und ändern Sie den Inhalt mit dem folgenden Code. Sie können verschiedene Arten von Zeitplan-Häufigkeitsoptionen einstellen. Sie können die Liste unter diesem Link abrufen. Hier wird der Stundenplan verwendet.

Namespace-App\Konsole;
verwenden Sie Illuminate\Console\Scheduling\Schedule;
Verwenden Sie Illuminate\Foundation\Console\Kernel als ConsoleKernel;
class Kernel erweitert ConsoleKernel

/**
* Die von Ihrer Anwendung bereitgestellten Artisan-Befehle.
*
* @var-Array
*/
/* Initialisiere die $commands-Variable */
geschützte $Befehle = [
'App\Console\Commands\RegisterUsersList',
];
/**
* Definieren Sie den Befehlszeitplan der Anwendung.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return ungültig
*/
Geschützter Funktionszeitplan (Zeitplan $zeitplan)

/* Stellen Sie den Zeitplan stündlich ein */
$schedule->command('registered:users')->hourly();

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

$this->load(__DIR__.'/Befehle');
erfordern base_path('routes/console.php');

Ansicht erstellen

Erstellen Sie die registrierteListe.Klinge.php Datei mit folgendem Code anzeigen.


@if (count($userList) > 0)

Die Liste der heute registrierten Benutzer ist unten aufgeführt:


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

@endforeach
@sonst
Heute ist noch kein Benutzer registriert.
@endif

Führen Sie den Befehl aus:

Führen Sie die folgenden Befehle aus, um den Cache zu leeren.

$ php Handwerker-Cache: löschen
$ php artisan config:cache

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

$ php Handwerker registriert:Benutzer

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

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

Fazit

Der Laravel Scheduler erleichtert die Ausführung sich wiederholender Aufgaben für die Anwendung. Nach dem Lesen dieses Tutorials sollten die Leser nun ein klares Verständnis der Konzepte zum Erstellen benutzerdefinierter Befehle und zur Implementierung automatisierter Aufgaben mit Laravel Scheduler haben.

AppyMouse On-Screen Trackpad und Mauszeiger für Windows Tablets
Tablet-Benutzer vermissen oft den Mauszeiger, insbesondere wenn sie die Laptops gewohnt sind. Die Touchscreen-Smartphones und -Tablets bieten viele Vo...
Mittlere Maustaste funktioniert nicht unter Windows 10
Das mittlere Maustaste hilft Ihnen beim Scrollen durch lange Webseiten und Bildschirme mit vielen Daten. Wenn das aufhört, werden Sie am Ende die Tast...
So ändern Sie die linke und rechte Maustaste auf einem Windows 10-PC
Es ist ganz normal, dass alle Computer-Maus-Geräte ergonomisch für Rechtshänder gestaltet sind. Es gibt aber auch Mausgeräte, die speziell für Linkshä...