我知道我们可以为每个X
个别时间指定某些任务,例如以下每两个小时后运行一次:
$schedule->command('catalog:update')->cron('0 */2 * * *');
但是,我需要每两小时运行一次但仍能排除某些时间。例如,Scheduler应该每两个小时运行一次我的任务,但不会在这些时间之间运行:上午12点到凌晨5点
我在考虑将当前时间检查登录到任务本身,这可能有用。是否有其他更好或特定于laravel的方式?
感谢您的帮助/建议
答案 0 :(得分:3)
将Laravel Scheduler与hourly()
和unlessBetween()
一起使用。
unlessBetween
方法可用于在一段时间内排除任务的执行
一个例子:
->hourly()->unlessBetween('00:00', '5:00');
https://laravel.com/docs/5.5/scheduling#schedule-frequency-options
答案 1 :(得分:0)
为了执行命令,除了在上午12点到早上5点之间的持续时间,只需要反思它。仅在凌晨5点到12点之间使用between
关键字执行命令。
您可以使用哪个限制任务在开始和结束时间之间运行,如
$schedule->command('test')->cron('0 */2 * * *')->between('5:00', '00:00');