Laravel 任务计划程序在指定的时间范围内不工作

Laravel task scheduler not working for specified time range

我有一个 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'); 不是 运行ning 吗?

您的规则有冲突。

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

daily() 将任务设置为每天 运行 午夜。 between() 将任务限制在某些时间之间仅 运行(基本上是次要条件)。

因此您的 between 规则将使其永远不会 运行s,因为它只会在 运行 午夜然后它会失败 between 条件。

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