我们曾经运行过Laravel 5.2,对于我们的一个处理任务,我们运行一个控制台命令将作业排队到Redis队列中。在Laravel 5.4升级之前,此作业将排队并由队列守护程序获取并且仅运行一次。然而,在升级之后,工作被拾起两次,相隔大约1分钟。没有任何改变,所以我试图弄清楚Laravel的做法有何不同。我还可以验证控制台命令只将作业排队一次,因此有些内容随着守护程序的运行方式而发生了变化。还有其他人看到过这样的行为吗?
答案 0 :(得分:3)
今天就读一下。不知道它是否会有所帮助。
来自文档:
“ - timeout值应始终比你的至少短几秒 retry_after配置值。这将确保工人处理一个 在重试工作之前,总是会杀死给定的工作。如果你的--timeout选项是 比retry_after配置值长,您的作业可能会被处理 两次“。
https://laravel.com/docs/5.6/queues#queue-workers-and-deployment