无论指定的时间表如何,Laravel Scheduler 每分钟运行一次

我在 crontab 中触发了 Laravel schedule 命令:

* * * * * php /home/forge/site/artisan schedule:run

这是通过 Forge 设置的。

然后,在app/Console/Kernel.php我触发我的工作每小时运行一次:

$schedule->job(new GetRecentArtists())->hourly();

但它仍然每分钟都在运行。

我的理解是 artisan 命令需要每分钟运行一次,以便可以检查作业计划以查看作业是否需要根据其特定计划触发。

更新

我已尝试按照 Sahidul 评论中的建议重新启动队列,并确认没有任何内置计划(每小时、每天等)阻止它每分钟运行。

当我从 crontab 中删除计划并通过 运行它时php artisan schedule:run,我得到“没有计划的命令准备好运行”但任务仍然运行。


喵喔喔
浏览 88回答 1
1回答

回首忆惘然

这是一条红鲱鱼。我的日志消息显示作业在__construct作业方法中运行,而不是在handle方法中运行。该作业是在调度程序运行时构建的,然后添加到队列中以按照计划执行 - 因此会立即调用构造方法,但直到预定时间才真正处理该作业。
打开App,查看更多内容
随时随地看视频慕课网APP