Symfony Messenger 不会总是重启

Posted

技术标签:

【中文标题】Symfony Messenger 不会总是重启【英文标题】:Symfony messenger won't always restart 【发布时间】:2021-04-19 14:01:05 【问题描述】:

我目前正在开发一个 Symfony 4 应用程序,该应用程序使用 Symfony Messenger 与专门的工作人员一起处理一些后台作业。

我使用 systemd v241 运行 worker,配置如下:

[Unit]
Description=Symfony Worker
StartLimitIntervalSec=0
StartLimitBurst=0

[Service]
WorkingDirectory=/symfony-app/current
ExecStart=/bin/bash -lc 'bin/console messenger:consume async --memory-limit=512M --time-limit=3600'
ExecStop=/bin/bash -lc 'bin/console messenger:stop-workers'
StandardOutput=syslog
StandardError=syslog
Restart=always
PrivateTmp=true
NoNewPrivileges=true
RestartSec=5s

[Install]
WantedBy=default.target

正如documentation 中所写,worker 不能永远运行,因此它每小时或每次达到 512M 的内存限制时都会重新启动。

我的问题是它并不总是重新启动。有时会,但有时不会,我唯一得到的是日志中的Main process exited, code=killed, status=15/TERM

知道为什么以及如何解决这个问题吗?

【问题讨论】:

【参考方案1】:

Lingering 未在负责启动服务的用户上启用。启用它解决了我的问题。

【讨论】:

感谢您添加解决方案,而不仅仅是写“nvm,找到解决方案”

以上是关于Symfony Messenger 不会总是重启的主要内容,如果未能解决你的问题,请参考以下文章

Symfony 5 Messenger 不自动配置消息处理程序

Symfony:我如何在 Messenger 中使用远程过程调用(RPC)?

Symfony Messenger 使用 Apache Kafka 作为队列传输

Symfony messenger 和 mailer:如何添加 binding_key?

Symfony Messenger / RabbitMQ 中的消费者错误处理

如何在 Symfony Messenger 的中间件上禁用日志“信息”?