我想准确地每隔30分钟执行一次特定的工作,例如:
- 00:00
- 00:30
- 01:00
- ...
- 12:00
- 12:30
- 13:00
- ...
在Kernel.php
中,我有这份工作...
$schedule->command('mycommand:sender')
->everyThirtyMinutes();
...,在crontab
中,我有此命令...
* * * * * cd /www/webapp && php artisan schedule:run >> /dev/null 2>&1
显然一切正常,但是如果我停止服务或重新启动服务器,则Kernel
或什至Crontab
中的此指令对于例如服务器或服务已变为正确在“ 12:29”可用时,我知道命令将在“分钟到分钟”内执行,但是这些指令中的“内容”将知道下一次执行“应该”在12:30或它的执行方式在12:29之后运行“ 30分钟”,因此是12:59?
尽管看似无关紧要,但是我的系统中有任务,需要在这些“轮次”执行,因为任务“执行时间”决定了要执行的操作。
答案 0 :(得分:0)
添加此内容-> everyThirtyMinutes();
cron("*/30 * * * *")
这将从现在开始执行:
于2019-12-04 18:00:00
然后在2019-12-04 18:30:00
然后在2019-12-04 19:00:00
然后在2019-12-04 19:30:00
然后在2019-12-04 20:00:00
答案 1 :(得分:-1)
不是每分钟在cron中运行并检查php中的逻辑,为什么不让cron
每30分钟运行一次?
0,30 * * * * cd /www/webapp && php artisan schedule:run >> /dev/null 2>&1