Laravel框架学习笔记之任务调度(定时任务)
在开发中,常常需要用到定时任务。就是在某个特定时间段执行你需要的功能,特别是在第三方支付中,在用户使用你的某些功能如:提现,转账等等,会用到T+1来给用户做交易,这里就需要定时任务。
Laravel简化了定时任务,以前,开发者需要为每一个需要调度的任务编写一个 Cron 条目;现在,Laravel 在框架里定义调度命令,并且服务器上只需要一个 Cron 条目即可。
* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1 (php执行artisan命令,运行定时任务)
任务执行主体定义在app/Console/Commands 里。
任务调度定义在 app/Console/Kernel.php 文件的 schedule 方法中。
调度常用选项
->cron('* * * * *');在自定义Cron调度上运行任务
->everyMinute();每分钟运行一次任务
->everyFiveMinutes();每五分钟运行一次任务
->everyTenMinutes();每十分钟运行一次任务
->everyThirtyMinutes();每三十分钟运行一次任务
->hourly();每小时运行一次任务
->daily();每天凌晨零点运行任务
->dailyAt('13:00');每天13:00运行任务
->twiceDaily(1, 13);每天1:00 & 13:00运行任务
->weekly();每周运行一次任务
->monthly();每月运行一次任务
->monthlyOn(4, '15:00');每月4号15:00运行一次任务
->quarterly();每个季度运行一次
->yearly();每年运行一次
->timezone('America/New_York');设置时区
->weekdays();只在工作日运行任务
->sundays();每个星期天运行任务
->mondays();每个星期一运行任务
->tuesdays();每个星期二运行任务
->wednesdays();每个星期三运行任务
->thursdays();每个星期四运行任务
->fridays();每个星期五运行任务
->saturdays();每个星期六运行任务
->between($start, $end);基于特定时间段运行任务
->when(Closure);基于特定测试运行任务
当定时任务定义完成,可以使用artisan命令来检查和触发定时任务:
php artisan list //检查定时任务代码是否存在错误
php artisan schedule:run //运行定时任务