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