Laravel 调度程序:除给定时间外,每 x 小时运行一次

dev*_*010 5 php laravel

我知道我们可以为每个X单独的时间指定某些任务,如下所示每两个小时后运行一次:

$schedule->command('catalog:update')->cron('0 */2 * * *');
Run Code Online (Sandbox Code Playgroud)

但是,我需要每两小时运行一次,但仍然可以排除某些时间。例如,Scheduler 应该每两小时运行一次我的任务,而不是在这些时间之间:12 am 到 5 am

我正在考虑将当前时间检查登录放在可能有效的任务本身中。有没有其他更好的或 Laravel 特定的方法来做到这一点?

感谢您的帮助/建议

Ale*_*nin 7

Laravel Schedulerhourly()和 一起使用unlessBetween()

unlessBetween方法可用于在一段时间内排除某个任务的执行

一个例子:

->hourly()->unlessBetween('00:00', '5:00');
Run Code Online (Sandbox Code Playgroud)

https://laravel.com/docs/5.5/scheduling#schedule-frequency-options