Ce qui suit est une introduction au calendrier des tâches planifiées PHP Laravel de la colonne du didacticiel Laravel. J'espère que cela sera utile aux amis dans le besoin !
Prémisse : La méthode décrite dans cet article consiste à utiliser la tâche planifiée crontab de Linux pour aider à implémenter la planification Laravel (la même chose est vraie pour Mac).
1. Ajoutez d'abord la tâche planifiée Crontab. Voici juste une brève introduction.
Utilisez la commande crontab -e pour ajouter le contenu suivant
* * * * * /usr/local/bin/php /usr/local/var/www/projectName/artisan schedule:run >> /dev/null 2>&1
Comme indiqué :
La commande ci-dessus Crontab ajustez-le toutes les minutes avec la commande planning de Laravel, puis Laravel détermine la tâche d'exécution.
Remarque : Faites attention aux répertoires de php et artisan, dont php peut consulter le répertoire php
***** 你的命令
De plus, le 5* devant le La commande ci-dessus représente les minutes, l'heure, le jour, le mois et la semaine.
Minute : un entier compris entre 0 et 59, les valeurs par défaut * et */1 représentent 1 minute.
Heure : un entier de 0 à 23.
Jour : un nombre entier de 1 à 31.
Mois : un entier de 1 à 12.
Jour de la semaine : un nombre entier de 0 à 7, 0 et 7 représentent le dimanche.
crontab -l peut lister les tâches planifiées en cours.
2. Ajouter une tâche de planification Laravel.
1. Définissez votre tâche de planification dans la classe AppConsoleKernel :
<?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(); } }
Ce qui précède donne deux exemples de méthodes d'implémentation. La première méthode consiste à utiliser des fermetures et la deuxième méthode consiste à utiliser des fermetures. utilisez les commandes Artisan pour l’implémenter.
Il existe de nombreuses heures de programmation :
->cron(‘* * * * *’); 在自定义Cron调度上运行任务 ->everyMinute(); 每分钟运行一次任务 ->everyFiveMinutes(); 每五分钟运行一次任务 ->everyTenMinutes(); 每十分钟运行一次任务 ->everyThirtyMinutes(); 每三十分钟运行一次任务 ->hourly(); 每小时运行一次任务 ->daily(); 每天凌晨零点运行任务 ->dailyAt(‘13:00’); 每天13:00运行任务 ->twiceDaily(1, 13); 每天1:00 & 13:00运行任务 ->weekly(); 每周运行一次任务 ->monthly(); 每月运行一次任务
Il existe des méthodes supplémentaires, veuillez vous référer à : http://laravelacademy.org/post/235.html
Continuez avec la deuxième méthode :
3. Comment définir les commandes Artisan :
<?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()); } }
D'accord, vous pouvez maintenant exécuter des tâches planifiées, il y a une petite astuce. Si les tâches ci-dessus ne sont pas exécutées, vous pouvez utiliser la commande php artisan list pour imprimer des messages d'erreur.
Pour plus d'articles techniques liés à Laravel, veuillez visiter la colonne laravel !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!