Laravel Scheduler:除了给定时间外每x小时运行一次

问题描述 投票:2回答:2

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

$schedule->command('catalog:update')->cron('0 */2 * * *');

但是,我需要每两小时运行一次但仍能排除某些时间。例如,Scheduler应该每两个小时运行一次我的任务,但不会在这些时间之间运行:上午12点到早上5点

我正在考虑将当前时间检查登录到任务本身,这可能有用。有没有其他更好或特定于laravel的方式呢?

感谢您的帮助/建议

php laravel
2个回答
3
投票

使用Laravel Schedulerhourly()unlessBetween()

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

一个例子:

->hourly()->unlessBetween('00:00', '5:00');

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


0
投票

为了执行命令,除了在上午12点到早上5点之间的持续时间,只需要反思它。使用between关键字仅在上午5点到12点之间执行命令。

你可以使用哪个限制任务在开始和结束时间之间运行

$schedule->command('test')->cron('0 */2 * * *')->between('5:00', '00:00');
© www.soinside.com 2019 - 2024. All rights reserved.