任务调度在 app/Console/Kernel.php 的 schedule 方法中进行定义;
分配多种调度计划:结合其他一些特定条件,我们可以生成在一周中特定时间运行的任务。举个例子,在每周一执行命令:
方法 描述
->cron('* * * * *'); 自定义 Cron 时间表执行任务
->everyMinute(); 每分钟执行一次任务
->everyFiveMinutes(); 每五分钟执行一次任务
->everyTenMinutes(); 每十分钟执行一次任务
->everyFifteenMinutes(); 每十五分钟执行一次任务
->everyThirtyMinutes(); 每三十分钟执行一次任务
->hourly(); 每小时执行一次任务
->hourlyAt(17); 每小时第 17 分钟执行一次任务
->daily(); 每天午夜执行一次任务(译者注:每天零点)
->dailyAt('13:00'); 每天 13 点执行一次任务
->twiceDaily(1, 13); 每天 1 点 和 13 点分别执行一次任务
->weekly(); 每周执行一次任务
->weeklyOn(1, '8:00'); 每周一的 8 点执行一次任务
->monthly(); 每月执行一次任务
->monthlyOn(4, '15:00'); 每月 4 号的 15 点执行一次任务
->quarterly(); 每季度执行一次任务
->yearly(); 每年执行一次任务
->timezone('America/New_York'); 设定时区
结合其他一些特定条件,我们可以生成在一周中特定时间运行的任务。举个例子,在每周一执行命令:
// 每周一 13:00 执行...
$schedule->call(function () {
//
})->weekly()->mondays()->at('13:00');
// 工作日(周一至周五) 8点 至 17 点每小时执行一次...
$schedule->command('foo')
->weekdays()
->hourly()
->timezone('America/Chicago')
->between('8:00', '17:00');
额外的限制条件列表如下:
方法 描述
->weekdays(); 限制任务在工作日执行
->weekends(); 限制任务在周末执行
->sundays(); 限制任务在周日执行
->mondays(); 限制任务在周一执行
->tuesdays(); 限制任务在周二执行
->wednesdays(); 限制任务在周三执行
->thursdays(); 限制任务在周四执行
->fridays(); 限制任务在周五执行
->saturdays(); 限制任务在周六执行
->between($start, $end); 限制任务在 $start 和 $end 之间执行
->when(Closure); 当闭包返回为真时执行
->environments($env); 限制任务在特定环境中执行
执行crontab -e 在里面添加下面的cron入口
crontab -e 是以root身份执行定时任务
crontab -e -u www 是以www身份执行定时任务
- php artisan schedule:run >> /dev/null 2>&1