Laravel任务调度程序不适用于指定的时间范围



我有一个laravel 5任务,我计划在指定的时间范围之间进行该任务:

$schedule->call(function () {
             // task omitted
        })->daily()->timezone('Europe/London')->between('14:00', '15:00');

这是行不通的,但是,如果我使用everyMinute();将其更改为每分钟运行,则它确实成功运行:

       $schedule->call(function () {     
             // task omitted
        })->everyMinute();

我在服务器上的Cron设置为每半小时运行一次,因为它是一个共享的托管,因此它不能持续不到半小时:

0,30    *   *   *   *   /usr/local/bin/php -q /home/username/public_html/bookings/artisan schedule:run >> /dev/null 2>&1

有人知道为什么第一个cron作业:daily()->timezone('Europe/London')->between('14:00', '15:00');不运行?

您有一个冲突的规则。

https://laravel.com/docs/5.5/scheduling

daily()设定了每天在午夜进行的任务。在()之间将任务限制为仅在一定小时之间运行(基本上是次要条件)。

因此,您之间的规则将不得不运行,因为它只会在午夜运行,然后将失败。

使用dailyAt('14:00')代替daily()->between()

最新更新