gpt4 book ai didi

python - 在不暂停服务的情况下将新代码部署到生产 celery 集群中的可靠方法

转载 作者:太空狗 更新时间:2023-10-29 21:58:59 25 4
gpt4 key购买 nike

我有几个 celery 节点在生产中使用 rabbitmq 运行,我一直在处理服务中断的部署。我必须关闭整个站点才能将新代码部署到 celery。我将每个 child 的最大任务设置为 1,所以理论上,如果我对现有任务进行更改,它们应该在下次运行时生效,但是注册新任务呢?我知道重启守护进程不会杀死正在运行的 worker ,而是会让他们自己死掉,但这看起来仍然很危险。这个问题有优雅的解决方案吗?

最佳答案

这里具有挑战性的部分似乎是确定哪些 celery 任务是新的,哪些是旧的。我建议在 rabbitmq 中创建另一个虚拟主机并执行以下步骤:

  1. 使用新代码更新 Django 网络服务器并重新配置以指向新的虚拟主机。
  2. 当任务在新虚拟主机中排队时,等待 celery 工作完成旧虚拟主机中的任务。
  3. 当工作人员完成后,将代码和配置更新到新的虚拟主机

我还没有真正尝试过这个,但我不明白为什么这行不通。一个烦人的方面是必须在每次部署时在虚拟主机之间切换。

关于python - 在不暂停服务的情况下将新代码部署到生产 celery 集群中的可靠方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7772378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com