我正在使用Laravel 9,我正试图在我的时间表中设置几个任务。其中一个每分钟叫一次,另一个每5分钟叫一次。
protected function schedule(Schedule $schedule)
{
$schedule->call(/* send myself a mail */)->everyMinute();
$schedule->call(/* send myself a mail */)->everyFiveMinutes();
}
在我的主机上,我有一个每分钟调用一次的cron任务:
/opt/alt/php81/usr/bin/php ~/my-path/artisan schedule:run
但是每分钟我都会收到来自everyMinute()
任务的邮件,以及来自everyFiveMinutes()
任务的邮件。
我尝试用job
和command
代替call
,但它没有改变任何东西,与->cron('* * * * *')
相同,而不是->everyMinute()
我也有同样的问题。
我发现当我像这样使用时间表时:
$schedule->call( MyController::MyFunction() )->everyFiveMinutes();
它每分钟运行一次,而不是每5分钟运行一次。
如果我像这样运行,每一个都像预期的那样工作:
$schedule->call(function () {MyController::MyFunction();})->everyFiveMinutes();