是否可以合并这两个任务计划程序 - Laravel

时间:2017-04-12 18:22:00

标签: php laravel laravel-5.3

我想将这两个时间表合并为一个时间表。第一个时间表每天从上午10:29到晚上10:45运行17分钟。第二个在每天下午14:59至15:15之间运行17分钟。每一分钟都会运行。相同的时区和相同的命令。

我之间可以有2个像这样的东西吗?这样做的优雅方式是什么?

 $schedule->command('abcd')->timezone('john_doe')->between('10:29', '10:45')->everyMinute();
 $schedule->command('abcd')->timezone('john_doe')->between('14:59', '15:15')->everyMinute(); 

1 个答案:

答案 0 :(得分:1)

您可以使用->when(Closure)

$schedule->command('abcd')->timezone('john_doe')->everyMinute()->when(function () {
    $now = Carbon::now()->getTimestamp();

    return ($now >= strtotime('10:29') && $now <= strtotime('10:45'))
        || ($now >= strtotime('14:59') && $now <= strtotime('15:15'));
});