我在crontab中以以下方式触发了Laravel Schedule命令:
* * * * * php /home/forge/site/artisan schedule:run
这是通过伪造设置的。
然后,在app/Console/Kernel.php
中,我触发我的工作按小时运行:
$schedule->job(new GetRecentArtists())->hourly();
但是它仍然每分钟运行一次。
我的理解是,工匠命令需要每分钟运行一次,以便可以检查作业计划,以查看该作业是否需要按照其特定的计划进行触发。
更新
我已尝试按照Sahidul的评论中的建议重新启动队列,并确认没有任何内置时间表(每小时,每天等)阻止它每分钟运行。
[当我从crontab中删除计划并通过php artisan schedule:run
运行它时,我得到'没有计划的命令准备好运行,但是任务仍在运行。
这是一条红鲱鱼。我的日志消息显示该作业正在该作业的__construct
方法中运行,而不是在handle
方法中运行。
作业在调度程序运行时被构造,然后被添加到队列中以按照调度执行-因此构造方法被立即调用,但是直到调度的时间才真正处理该作业。