gpt4 book ai didi

django - 停止 celeryd 的问题

转载 作者:行者123 更新时间:2023-12-04 00:00:29 26 4
gpt4 key购买 nike

我将 celeryd 作为守护进程运行,但有时我无法优雅地停止它。当我发送 TERM 信号并且队列中有项目(在本例中为 service celeryd stop )时,celeryd 将停止接受新作业,并关闭所有工作进程。但是,父进程不会关闭。

我刚刚遇到了一个场景,我在两台独立的工作机器上运行 celeryd:A 和 B。在 RabbitMQ 服务器上有大约 1000 条消息时,我关闭了 A,并经历了我上面解释的情况。 B 继续工作,但随后因服务器上留下大约 40 条消息而停止工作。然而,我能够正确地停止 B。

我重新启动 B,看看它是否会将 40 个项目从队列中删除,但它不会。接下来,我硬杀了A,然后B捕获并完成了任务。

我的结论是父进程已经为它的子进程从我们的 RabbitMQ 服务器中保留了 40 个项目。它会正确地收割子项,但除非我手动杀死它,否则不会将项目释放回 RabbitMQ。

有没有人经历过类似的事情?

我正在运行 celery 2.2.2

最佳答案

我认为这与以下内容有关:

https://github.com/celery/celery/issues/264

环境

CELERY_DISABLE_RATE_LIMITS = False

在您的 settings.py 文件中应该可以工作。

关于django - 停止 celeryd 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5045687/

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