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()
我有一个 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()