使用Laravel每天安排两次任务

Jul*_*oro 5 cron laravel

我正在尝试每天两次安排一个命令:

这是我的代码:

protected function schedule(Schedule $schedule)
    {

        $morningCarbonHour = Carbon::now();
        $morningCarbonHour->hour = 23;
        $morningCarbonHour->minute = 27;
        $morningCarbonHour->second = 00;

        $hourIni = $morningCarbonHour->format('H:i');

        $nightCarbonHour = Carbon::now();
        $nightCarbonHour->hour = 23;
        $nightCarbonHour->minute = 28;
        $nightCarbonHour->second = 00;

        $hourFin = $nightCarbonHour->format('H:i');

        $schedule->command('check:time')
                 ->twiceDaily($hourIni,$hourFin)
                 ->timezone('America/Mexico_City');
    }
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息:

[2016-05-31 23:29:01] production.ERROR: exception 'InvalidArgumentException' with message 'Invalid CRON field value 23:27,23:28 at position 1' in /home/forge/myproject/vendor/mtdowling/cron-expression/src/Cron/CronExpression.php:147
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

我真的不知道为什么??? 任何的想法???

Gie*_*šys 8

twiceDaily接受参数为小时.
默认值是public function twiceDaily($first = 1, $second = 13)指每天在1:00和13:00执行任务.

您正在尝试运行任务23:27和23:28,这在技术上不可用this(twiceDaily)方法,因为它不接受分钟作为参数.


更改twiceDaily()<command>->cron('27,28 23 * * *');.
它将在23:27和23:28运行你的命令.


或者,如果你想运行命令一天两次,用不同的小时和分钟,你应该使用两个分开的命令与dailyAt()(二dailyAt()上一个命令,将覆盖并根据需要将无法正常工作).