Heim  >  Artikel  >  PHP-Framework  >  So führen Sie geplante Aufgaben in Laravel aus

So führen Sie geplante Aufgaben in Laravel aus

PHPz
PHPzOriginal
2023-04-14 09:16:443827Durchsuche

Laravel ist ein beliebtes PHP-Framework, das eine Fülle von Tools und Funktionen bietet, darunter geplante Aufgaben. In diesem Artikel erfahren Sie, wie Sie geplante Aufgaben in Laravel ausführen.

Zuallererst stellt Laravel ein Tool namens „Scheduler“ zur Verfügung, mit dem wir geplante Aufgaben einfach definieren und ausführen können. In Laravel nutzt der Scheduler den Cron-Dienst des Betriebssystems, daher müssen Sie sicherstellen, dass der Cron-Dienst auf dem Zielserver gestartet wurde.

Als nächstes erklären wir Schritt für Schritt, wie man geplante Aufgaben in Laravel implementiert:

Der erste Schritt besteht darin, eine Klasse für geplante Aufgaben zu erstellen.

In Laravel können wir eine benutzerdefinierte Klasse für geplante Aufgaben erstellen, indem wir die Klasse IlluminateConsoleSchedulingSchedule erben. Diese Klasse muss eine Methode namens „handle“ enthalten, um die Ausführungslogik der geplanten Aufgabe zu definieren. Beispielsweise erstellen wir eine Aufgabenklasse namens „SendEmail“ mit dem folgenden Code:

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;

class SendEmail extends Command
{
    protected $signature = &#39;email:send&#39;;

    protected $description = &#39;Send an email to users&#39;;

    public function handle()
    {
        // 定时任务执行的逻辑
    }
}

Im obigen Beispiel definieren wir eine Klasse namens „SendEmail“, die von der Command-Klasse von Laravel erbt. In dieser Klasse definieren wir den Befehl „email:send“, der die Aufgabe auslöst, und die Aufgabenbeschreibung, die angezeigt wird, wenn der Befehl „php artisan list“ ausgeführt wird.

Der zweite Schritt besteht darin, geplante Aufgaben zu registrieren.

In Laravel können wir die Datei Kernel.php verwenden, um alle geplanten Aufgaben zu registrieren. Diese Datei befindet sich im Verzeichnis „app/Console“. In dieser Datei können wir die Methode „schedule“ verwenden, um alle Aufgaben zu definieren. Beispielsweise möchten wir die gerade erstellte SendEmail-Aufgabe jede Minute ausführen. Der Code lautet wie folgt:

protected function schedule(Schedule $schedule)
{
    $schedule->command('email:send')->everyMinute();
}

Im obigen Beispiel verwenden wir die Methode „everyMinute“, um die SendEmail-Aufgabe zu definieren, die jede Minute ausgeführt werden soll.

Der dritte Schritt besteht darin, die geplante Aufgabe zu starten.

In Laravel können wir den Scheduler starten, indem wir den folgenden Befehl ausführen:

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

Dann müssen wir den obigen Befehl zur Cron-Tabelle hinzufügen, um sicherzustellen, dass der Scheduler ausgeführt wird innerhalb der angegebenen Zeit ausgeführt werden. Wenn wir beispielsweise festlegen, dass die SendEmail-Aufgabe jede Minute ausgeführt wird, müssen wir den folgenden Befehl zur Cron-Tabelle hinzufügen:

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

Im obigen Beispiel bedeutet „ *“, dass sie einmal pro Minute ausgeführt wird .

Jetzt haben wir geplante Aufgaben erfolgreich in Laravel implementiert. Ob in einer Produktionsumgebung oder einer Entwicklungsumgebung, die Funktion für geplante Aufgaben von Laravel kann uns dabei helfen, einige Aufgaben zu automatisieren und uns so Zeit und Energie zu sparen.

Das obige ist der detaillierte Inhalt vonSo führen Sie geplante Aufgaben in Laravel aus. 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