Wie implementiert Laravel geplante Aufgaben? In diesem Artikel wird hauptsächlich der Beispielcode für die Implementierung geplanter Aufgaben in Laravel vorgestellt. Der Herausgeber findet ihn recht gut, daher werde ich ihn jetzt mit Ihnen teilen und als Referenz verwenden. Folgen wir dem Herausgeber, um einen Blick darauf zu werfen. Ich hoffe, es wird für alle hilfreich sein.
Einführung
Geplante Aufgaben sind eine sehr häufige Anforderung im Back-End-Entwicklungsprozess und tauchen häufig in Datenstatistiken, Spam-Bereinigung und anderen Szenarien auf. Laravel bietet einen vollständigen Satz geplanter Aufgabentools, sodass wir uns nur auf die Vervollständigung der Logik konzentrieren müssen und den Rest der grundlegenden Arbeit erledigen.
Grundlegende Verwendung
Befehl generieren
php artisan make:command AreYouOK
5.2 und frühere Versionen, dieser Befehl ist `php artisan make : console xxx`
Befehle bearbeiten
Bearbeiten Sie die Datei „app/Console/Commands/AreYouOK.php“ und nehmen Sie die folgenden Änderungen vor:
... ... protected $signature = 'areyou:ok'; // 命令名称 protected $description = '雷军,科技圈最会唱歌的男人'; // 命令描述,没什么用 public function __construct() { parent::__construct(); // 初始化代码写到这里,也没什么用 } public function handle() { // 功能代码写到这里 }
Registrierungsbefehl
Bearbeiten Sie die Datei „app/Console/Kernel.php“ und registrieren Sie die neu generierte Klasse:
protected $commands = [ \App\Console\Commands\AreYouOK::class, ];
Schreiben Sie die Aufruflogik:
protected function schedule(Schedule $schedule) { $schedule->command('areyou:ok') ->timezone('Asia/Shanghai') ->everyMinute(); }
Die obige Logik wird einmal pro Minute aufgerufen. Laravel stellt Zeitfunktionen unterschiedlicher Länge von einer Minute bis zu einem Jahr zur Verfügung, die direkt aufgerufen werden können.
Registrieren Sie dieses Laravel-Projekt im Cron des Systems
Bearbeiten Sie die Datei „/etc/crontab“ und fügen Sie den folgenden Code hinzu:
* * * * * root /usr/bin/php /var/www/xxxlaravel/artisan schedule:run >> /dev/null 2>&1
„/var/www/xxxlaravel“ in der obigen Zeile muss in den tatsächlichen Pfad geändert werden.
Feuer
Cron neu starten, um diese Funktion zu aktivieren: `systemctl restart crond.service`, fertig!
Verwandte Empfehlungen:
Detaillierte Erklärung, wie Laravel Supervisor implementiert, um asynchrone Prozesse auszuführen
Ausführliche Erklärung der Aufgabenplanungskonsole von Laravel
Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung, wie Laravel geplante Aufgaben umsetzt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!