Symfony、Messenger、Kubernetes 和 Messenger:stop-workers

问题描述 投票:0回答:1

我的问题如下,我有一个symfony应用程序。它在 Kubernetes 中进行了 docker 化。第一个容器是 Web 服务器,第二个是 symfony Messenger 的使用者,第三个是 symfony 调度程序组件的 symfony Messenger 使用者。在我的应用程序中,用户可以在网络中更改某些调度程序参数,为了使它们生效,我必须重新启动调度程序组件。为此,请使用 messenger:stop-workers 命令。如果进程都在一个容器内,那么一切都会顺利进行。嗯,他们不是。处理这个问题最简单的方法是什么?我不知道基于创建重新启动整个容器的机制的简单且不优雅的方法。但也许它可以在 symfony 中做得更好?使用共享缓存/redis/db 或其他东西进行一些通信?

对于普通工作人员,我可以发送特殊消息强制整个工作人员重新启动,但我不认为这可以通过调度程序来完成...?

symfony symfony-messenger symfony-scheduler
1个回答
0
投票

你是对的。您可以使用 Redis 或数据库表等解决方案来有效管理最新调度程序配置的存储。

基本上,每次用户通过 Web 应用程序修改调度程序参数时,请立即记录这些更改。然后,配置调度程序使用者以定期检查此共享数据存储是否有任何更新。如果检测到新更新的配置,消费者应从该修改后的数据中重新加载其调度参数。

© www.soinside.com 2019 - 2024. All rights reserved.