我正在使用Laravel的调度程序来运行一些命令,但是有时该命令需要很长时间,并且我不会确保它不会向我的服务器发送命令,所以我'm希望以某种方式做"如果5正在运行ATM,请不要运行。
在确定频率时要聪明:
您可以使用多种方法来定义计划任务的频率。请参阅时间表频率选项
- > everyminute((;每分钟运行任务
- > everyfiveminutes((;每五分钟运行任务
- > averytenminutes((;每十分钟运行任务...
这些方法可以与其他约束结合在一起,以创建更精细的调整时间表,仅在一周的某些日子里运行:
- >工作日((;将任务限制为工作日
- >周末((;将任务限制为周末。
您可以如下:
$schedule->call(function () {
//
})->weekly()->mondays()->at('13:00');
因此,您应该仔细确定如何以及何时要运行命令。不要以相同的间隔运行每个命令。
最后:
如果您仍然无法避免以相同的间隔运行多个命令,则可以指定它们在不重叠的情况下运行(即不是同时(:
$schedule->command('emails:send')->withoutOverlapping();