Heim >PHP-Framework >Laravel >Aufgabenplanung durch Laravel: Regelmäßige Ausführung wiederkehrender Aufgaben

Aufgabenplanung durch Laravel: Regelmäßige Ausführung wiederkehrender Aufgaben

王林
王林Original
2023-08-13 17:05:131823Durchsuche

Aufgabenplanung durch Laravel: Regelmäßige Ausführung wiederkehrender Aufgaben

Aufgabenplanung durch Laravel: Sich wiederholende Aufgaben regelmäßig ausführen

Einführung:
Bei der Entwicklung von Webanwendungen gibt es einige sich wiederholende Aufgaben, die regelmäßig ausgeführt werden müssen. Zum Beispiel E-Mails versenden, Berichte erstellen, Datensicherung durchführen usw. Die manuelle Ausführung dieser Aufgaben von Zeit zu Zeit ist offensichtlich ineffizient und kann leicht übersehen werden. Laravel bietet eine leistungsstarke Aufgabenplanungsfunktion, die uns dabei helfen kann, diese Aufgaben automatisch zu geplanten Zeiten auszuführen und die Entwicklungseffizienz zu verbessern. In diesem Artikel wird erläutert, wie Sie Aufgaben über Laravel planen, um die geplante Ausführung sich wiederholender Aufgaben zu implementieren.

1. Aufgabenplaner
Laravel verwendet den Aufgabenplaner, um verschiedene Aufgaben zu verwalten und auszuführen. Der Aufgabenplaner verwendet CRON-Ausdrücke, um die Ausführungszeit von Aufgaben anzugeben. Ein CRON-Ausdruck ist ein Zeitausdruck, der Minuten, Stunden, Daten, Monate und Wochentage angeben kann. In Laravel können wir über Artisan-Befehle Aufgabenpläne erstellen, ändern und löschen.

2. Aufgabenplanung erstellen
Zuerst müssen wir eine Aufgabenplanungsklasse erstellen. In Laravel können Sie den Artisan-Befehl verwenden, um einen Aufgabenplaner zu erstellen:

php artisan make:command SendEmails

Der obige Befehl erstellt eine Datei mit dem Namen SendEmails.php in app/Console/Commands Verzeichnisdatei, die eine Klasse enthält, die von IlluminateConsoleCommand erbt. app/Console/Commands目录下创建一个名为SendEmails.php的文件,该文件包含了一个继承自IlluminateConsoleCommand的类。

三、定义任务调度
打开SendEmails.php文件,在handle()方法中添加任务的具体逻辑。例如,我们要发送一封邮件给所有用户,可以在handle()方法中编写以下代码:

public function handle()
{
    $users = User::all();

    foreach ($users as $user) {
        // 发送邮件给$user
    }
}

四、配置任务调度
打开app/Console/Kernel.php文件,该文件包含了所有的任务调度配置。我们需要在schedule()方法中配置任务调度。例如,我们想要每天的上午10点执行SendEmails任务,可以在schedule()方法中添加以下配置:

protected function schedule(Schedule $schedule)
{
    $schedule->command('emails:send')
             ->dailyAt('10:00');
}

上述配置将会在每天的上午10点执行SendEmails任务。

五、使用任务调度
我们可以使用php artisan schedule:run命令来运行任务调度器,它会根据配置的时间表自动执行任务。该命令可以使用系统的定时任务工具,如CRON来定期调用。

在Linux系统中,可以使用以下命令配置CORN定时任务:

crontab -e

然后在打开的文本编辑器中添加以下内容:

* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1

上述命令将会每分钟运行一次php artisan schedule:run命令。

六、其他任务调度配置
除了通过CRON表达式来定期执行任务外,我们还可以通过其他方式配置任务调度,例如:

  1. 使用everyMinute()方法来每分钟执行一次任务:
$schedule->command('emails:send')
         ->everyMinute();
  1. 使用daily()方法来每天定时执行任务,可以传入1到23之间的小时参数:
$schedule->command('emails:send')
         ->daily(13);
  1. 使用weekdays()
  2. 3. Aufgabenplanung definieren
Öffnen Sie die Datei SendEmails.php und fügen Sie die spezifische Logik der Aufgabe in der Methode handle() hinzu. Wenn wir beispielsweise eine E-Mail an alle Benutzer senden möchten, können wir den folgenden Code in die Methode handle() schreiben:

$schedule->command('emails:send')
         ->weekdays();

4 Aufgabenplanung konfigurieren

Öffnen Sie app/Console /Kernel.php Datei, die alle Aufgabenplanungskonfigurationen enthält. Wir müssen die Aufgabenplanung in der Methode schedule() konfigurieren. Wenn wir beispielsweise die Aufgabe SendEmails jeden Tag um 10 Uhr ausführen möchten, können wir die folgende Konfiguration in der Methode schedule() hinzufügen:

rrreee

Die obige Konfiguration wird jeden Morgen ausgeführt. Führen Sie die Aufgabe SendEmails um 10 Uhr aus.

5. Aufgabenplanung verwenden
    Wir können den Befehl php artisan scheme:run verwenden, um den Aufgabenplaner auszuführen, der Aufgaben automatisch gemäß dem konfigurierten Zeitplan ausführt. Dieser Befehl kann regelmäßig mit dem geplanten Task-Tool des Systems wie CRON aufgerufen werden.
  1. In Linux-Systemen können Sie den folgenden Befehl verwenden, um geplante CORN-Aufgaben zu konfigurieren:
  2. rrreee
  3. Dann fügen Sie den folgenden Inhalt im offenen Texteditor hinzu:
rrreee🎜Der obige Befehl wird jede Minute ausgeführt php artisan scheme:run Befehl. 🎜🎜6. Andere Aufgabenplanungskonfigurationen🎜Zusätzlich zur regelmäßigen Ausführung von Aufgaben über CRON-Ausdrücke können wir die Aufgabenplanung auch auf andere Weise konfigurieren, wie zum Beispiel: 🎜🎜🎜Verwenden Sie zum Ausführen die Methode everyMinute() Aufgaben jede Minute Führen Sie eine Aufgabe einmal aus: 🎜🎜rrreee
    🎜Verwenden Sie die Methode daily(), um die Aufgabe regelmäßig jeden Tag auszuführen. Sie können den Stundenparameter zwischen 1 und 1 übergeben und 23: 🎜🎜rrreee🎜Verwenden Sie die Methode weekdays(), um anzugeben, dass die Aufgabe nur an Werktagen ausgeführt wird: 🎜🎜rrreee🎜IV Zusammenfassung🎜Durch Mit der Aufgabenplanungsfunktion von Laravel können wir das Timing problemlos implementieren. Führen Sie sich wiederholende Aufgaben aus. Durch einfache Konfiguration können wir einige sich wiederholende Aufgaben problemlos regelmäßig ausführen und die Entwicklungseffizienz verbessern. In der tatsächlichen Entwicklung können wir den Taskplaner und andere Laravel-Funktionen kombinieren, um eine komplexere Taskplanungslogik zu implementieren. Ich hoffe, dieser Artikel ist hilfreich für Sie. 🎜🎜Durch die oben genannten Vorgänge können wir den Aufgabenplaner von Laravel problemlos verwenden, um wiederkehrende Aufgaben regelmäßig auszuführen. Ganz gleich, ob es sich um das Versenden von E-Mails, das Erstellen von Berichten oder die Datensicherung handelt, kann durch einfache Konfiguration eine automatische geplante Ausführung erreicht werden, um die Entwicklungseffizienz zu verbessern. Ich hoffe, dieser Artikel ist hilfreich für Sie! 🎜🎜Referenz: 🎜🎜🎜Laravel-Dokumentation: Aufgabenplanung, https://laravel.com/docs/8.x/scheduling🎜🎜Laravel-Dokumentation: Cron-Syntax, https://laravel.com/docs/8.x / Planung#cron-syntax🎜🎜

Das obige ist der detaillierte Inhalt vonAufgabenplanung durch Laravel: Regelmäßige Ausführung wiederkehrender Aufgaben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn