Heim > Artikel > PHP-Framework > Zeitplan für geplante PHP-Laravel-Aufgaben [trockene Informationen]
Das Folgende ist eine Einführung in den Zeitplan für geplante PHP-Aufgaben aus der Laravel-Tutorialspalte. Ich hoffe, dass es für Freunde in Not hilfreich sein wird!
Prämisse: Die Methode in diesem Artikel besteht darin, die geplante Crontab-Aufgabe von Linux zu verwenden, um die Implementierung der Laravel-Planung zu unterstützen (dasselbe gilt für Mac).
1. Fügen Sie zuerst 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
Wie gezeigt:
Der obige Befehl Crontab wird Passen Sie den Zeitplanbefehl von Laravel jede Minute an, und dann bestimmt Laravel die Ausführungsaufgabe.
Hinweis: Achten Sie auf die Verzeichnisse von PHP und Artisan, welche PHP das PHP-Verzeichnis anzeigen kann
***** 你的命令
Außerdem steht die 5 * vor dem Der obige Befehl stellt Minuten, Stunde, Tag, Monat und Woche dar.
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 ganze Zahl 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(); } }
Die erste Methode besteht darin, Abschlüsse zu verwenden, und die zweite Methode darin Verwenden Sie Artisan-Befehle, um es zu implementieren.
Es gibt viele Termine:
->cron(‘* * * * *’); 在自定义Cron调度上运行任务 ->everyMinute(); 每分钟运行一次任务 ->everyFiveMinutes(); 每五分钟运行一次任务 ->everyTenMinutes(); 每十分钟运行一次任务 ->everyThirtyMinutes(); 每三十分钟运行一次任务 ->hourly(); 每小时运行一次任务 ->daily(); 每天凌晨零点运行任务 ->dailyAt(‘13:00’); 每天13:00运行任务 ->twiceDaily(1, 13); 每天1:00 & 13:00运行任务 ->weekly(); 每周运行一次任务 ->monthly(); 每月运行一次任务
Es gibt zusätzliche Methoden, siehe: http://laravelacademy.org/post/235.html
Fahren Sie mit Methode zwei fort:
3 So definieren Sie Artisan-Befehle:
<?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, jetzt können Sie die geplante Aufgabe ausführen, es gibt einen kleinen Trick Wenn die oben genannten Aufgaben nicht ausgeführt werden, können Sie mit dem Befehl php artisan list einige Fehlermeldungen ausdrucken.
Weitere technische Artikel zum Thema Laravel finden Sie in der Spalte Laravel!
Das obige ist der detaillierte Inhalt vonZeitplan für geplante PHP-Laravel-Aufgaben [trockene Informationen]. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!