laravel任务调度在App\Console\Kernel类的 schedule 方法中定义所有的调度任务,以Artisan命令调度为例:
1、在schedule添加调度命令及时间
protected function schedule(Schedule $schedule) { // $schedule->command('inspire') // ->hourly(); $schedule->command("my:test")->everyMinute();//每分钟执行 }
2、创建调度文件,该文件存储于App\Console\Commands目录下:
php artisan make:command MyTest
3、修改调度,定义任务调度名称和描述
protected $signature = 'my:test'; protected $description = 'This is my test'; public function handle() { //自定义任务 dump("hello world") ; }
4、执行测试,输出"hello world"
php artisan my:test
注意,如果你不知道如何向服务器添加 cron 配置项,请考虑使用 Laravel Forge 之类的服务来为你管理 cron 配置项:
* * * * * cd /你的项目路径 && php artisan schedule:run >> /dev/null 2>&1
常用时间说明
->everyMinute(); 每分钟执行一次任务
->hourly(); 每小时执行一次任务
->daily(); 每天 00:00 执行一次任务
->dailyAt('13:00'); 每天 13:00 执行一次任务
更多调度请参考文档:https://learnku.com/docs/laravel/9.x/scheduling/12238#105d37