问题描述
我遇到了Symfony Messenger组件的异常行为。我根据documentation进行了设置,并按照here的指示在每个部署上发出了messenger:stop-workers
信号。但是,我们的系统中发生了一个错误,我可以追溯到一个事实,即Messenger的工作人员正在使用旧版本的代码。
在进一步调查后,这就是我们的设置中发生的情况:
- 工人正在上班,由主管管理。
- 仅出于调试此特定情况的目的,我在终端
app/console messenger:consume --env=prod -vv async
中启动了一个新工作器,以查看会发生什么情况 - 我发出停止命令
app/console messenger:stop-workers --env=prod
- 我现在希望这两个工作人员都将被停止(主管将重新启动它正在处理的工作人员)。但是,这不会发生。 “调试”工作程序确实停止了,但是在主管下运行的工作程序却什么也没做。
由主管管理的工人最多只能有1个小时的处理时间,之后他们将被停止并重新启动。我在supervisord.log
中看到这很好用。每小时都有关于进程停止和启动的日志条目。但是没有任何关于它们从messenger:stop-workers
命令停止的信息。
我正在寻找有关为什么会发生这种情况的想法。我阅读了工作程序的实现,并且关闭信号是通过缓存发送的,但是在我们的配置中没有发现任何问题。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)