【发布时间】:2023-08-08 09:11:01
【问题描述】:
我启动了我的 celery worker 队列(在后台):
celery worker -Q my_queue -l info
此后,其代理 (redis) 被停止,同时后台 celery worker 在时间增加后不断尝试重新连接到 redis。
现在我的目标是在重新启动 redis 后重新启动 非重复 my_queue。我意识到在重新连接之前,以下 celery API 不会返回 my_queue:
celery.task.control.inspect().active_queues()
现在,如果我开始一个新的my_queue,如果之后重新连接后台中的前一个celery worker,我将得到重复的my_queue。
如果发现代理停止,一个解决方案可能是让celery worker 主动退出,但我没有找到正确的方法来做到这一点。我也不想被以前保存的 PID 杀死。任何建议或替代方案将不胜感激。
【问题讨论】: