我正在尝试每天两次安排一个命令:
这是我的代码:
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');
}
我收到此错误消息:
[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
堆栈追踪:
我真的不知道为什么???任何想法???
答案 0 :(得分:8)
this...
接受参数为小时
默认值为twiceDaily
,这意味着任务将每天在1:00和1执行。 13:00。
您正在尝试运行使用此(public function twiceDaily($first = 1, $second = 13)
)方法在技术上不可用的任务23:27和23:28,因为它不接受分钟作为参数。
<强>解决方案强>
将twiceDaily
更改为twiceDaily()
它将在23:27和23:28运行你的命令。
或者如果你想每天运行两次命令,不同的小时和分钟,你应该使用两个单独的命令<command>->cron('27,28 23 * * *');
(两个dailyAt()
在一个命令上,将覆盖,不会按你的意愿工作。