我在 Laravel 中调度任务时遇到问题,“0 12 * * 不是有效的 CRON 表达式” 这是 Cron\CronExpression::setExpression() 的例外,但我不知道为什么
这个问题从上周开始,显然没有具体原因
private function scheduleTask(Schedule $schedule, $task, $frequency, $hour = null, $condition = null){
if ($frequency === 'dailyAt' || $frequency === 'lastDayOfMonth'){
$schedule->job(new RunScheduledTask($task->tasId))
->timezone('America/Sao_Paulo')
->$frequency($hour);
} else if ($frequency === 'monthlyOn' || $frequency === 'weeklyOn'){
$schedule->job(new RunScheduledTask($task->tasId))
->timezone('America/Sao_Paulo')
->$frequency($condition, $hour);
}else if($frequency === 'everyMinute'){
$schedule->job(new RunScheduledTask($task->tasId))
->everyMinute()
->environments(['local'])
->timezone('America/Sao_Paulo');
}
}
我验证了函数中传递的参数,它们都是正确的
我会仔细检查传递到您的
$hour
变量中的值。 $hour
的值需要是格式为 'H:i' 的字符串,其中 H 是小时,i 是分钟,例如 '12:00'。