Heim > Artikel > Backend-Entwicklung > Analyse des geplanten Aufgabenplans von PHP in Laravel
Dieser Artikel stellt hauptsächlich die Analyse des geplanten Aufgabenplans von PHP vor. Er hat einen gewissen Referenzwert. Jetzt können Freunde in Not darauf verweisen.
Prämisse: Die Methode in diesem Artikel Die Verwendung der geplanten Crontab-Aufgaben von Linux hilft bei der Implementierung der Laravel-Planung (auch für Mac).
1. Fügen Sie zunächst die geplante Crontab-Aufgabe hinzu. Hier ist nur eine kurze Einführung.
Verwenden Sie den Befehl crontab -e, um den folgenden Inhalt hinzuzufügen
* * * * * /usr/local/bin/php /usr/local/var/www/projectName/artisan schedule:run >> /dev/null 2>&1
Der obige Befehl Crontab passt den Zeitplanbefehl von Laravel jede Minute an, und dann beurteilt Laravel die Aufgabe und führt sie aus.
Hinweis: Achten Sie auf die Verzeichnisse von PHP und Artisan. PHP kann das PHP-Verzeichnis anzeigen ***** 你的命令
Außerdem stehen die 5 * vor dem obigen Befehl für Minuten, Stunden, Tage, Monate bzw. Wochen.
Minute: eine Ganzzahl von 0-59, die Standardwerte * und */1 stehen für 1 Minute.
Stunde: eine ganze Zahl von 0 bis 23.
Tag: eine ganze Zahl von 1 bis 31.
Monat: eine ganze Zahl von 1 bis 12.
Wochentag: eine Ganzzahl von 0 bis 7, wobei 0 und 7 jeweils den Sonntag darstellen.
crontab -l kann die aktuell geplanten Aufgaben auflisten.
2. Laravel-Planungsaufgabe hinzufügen.
1. Definieren Sie Ihre Planungsaufgabe in der AppConsoleKernel-Klasse:
<?php namespace App\Console; use Illuminate\Console\Scheduling\Schedule; use Laravel\Lumen\Console\Kernel as ConsoleKernel; use Log;class Kernel extends ConsoleKernel { /** * The Artisan commands provided by your application. * 定义Artisan命令 * @var array */ protected $commands = [ \App\Console\Commands\test::class, ]; /** * Define the application's command schedule. * 定义调度任务 * @param \Illuminate\Console\Scheduling\Schedule $schedule * @return void */ protected function schedule(Schedule $schedule) { //方法一:// $schedule->call(function () {// Log::info('任务调度');// })->everyMinute(); //方法二: $schedule->command('test')->everyMinute(); } }
Zwei Implementierungsmethoden sind oben angegeben, Methode eins ist die Verwendung von Abschlüssen und Methode zwei ist die Verwendung von Artisan-Befehlen.
Die Planungszeit kann variiert werden:
->cron('* * * * *'); Aufgaben nach einem benutzerdefinierten Cron-Zeitplan ausführen
->everyMinute(); Einmal jede Minute ausführen
->everyFiveMinutes(); Alle fünf Minuten eine Aufgabe ausführen
->everyTenMinutes(); Alle zehn Minuten eine Aufgabe ausführen
->everyThirtyMinutes(); Alle dreißig Minuten eine Aufgabe ausführen
>stündlich(); Führen Sie die Aufgabe jede Stunde aus
->daily(); Führen Sie die Aufgabe jeden Tag um 0:00 Uhr aus
->dailyAt('13:00'); Tag um 13:00 Uhr Aufgabe
->twiceDaily(1, 13); Führen Sie die Aufgabe jeden Tag um 13:00 Uhr aus
->wöchentlich(); Führen Sie die Aufgabe einmal pro Woche aus
->monthly(); Alle Führen Sie die Aufgabe einmal im Monat aus
Es gibt zusätzliche Methoden, siehe: http://laravelacademy.org/post/235.html
Fahren Sie mit Methode zwei fort :
3. Definieren Sie die Artisan-Befehlsmethode:
<?php namespace App\Console\Commands; use Illuminate\Console\Command; use Log;class test extends Command { /** * The console command name. * * @var string */ protected $name = 'test:putcache'; /** * The console command description. * * @var string */ protected $description = 'test controller'; /** * Execute the console command. * * @return mixed */ public function handle() { //这里做任务的具体处理,可以用模型 Log::info('任务调度'.time()); } }
Okay, die obige Aufgabe kann ausgeführt werden. Wenn die obige Aufgabe nicht ausgeführt wird, können Sie den Befehl php artisan list verwenden Um einige Fehlermeldungen auszudrucken
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
Eine andere Möglichkeit, Laravel-Datenbanktests (SQLite) durchzuführen
Das obige ist der detaillierte Inhalt vonAnalyse des geplanten Aufgabenplans von PHP in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!