如何解决在docker环境中与REDIS Broker一起运行时清除Celery事件队列和PID框
我正在使用带有REDIS的Celery作为代理。 Celery流程创建了以下两个用于管理工作人员和事件的特殊队列:
-
_kombu.binding.celeryev
-用于管理事件 -
_kombu.binding.celery.pidbox
-用于管理工人
基础结构 基础结构包括使用docker容器运行芹菜工人。可以根据需要按比例放大或缩小docker容器。这导致以下问题:
- 即使工人不复存在,以前注册的工人的引用也会不断添加
_kombu.binding.celery.pidbox
- 事件队列
_kombu.binding.celeryev
不断填充着属于工人的事件,这些事件可能不再有效。
为清除事件队列,我尝试设置event_queue_ttl
和event_queue_expires
,但没有用。
作为清除_kombu.binding.celery.pidbox
的一种解决方法,可以使用celery ping命令并标识活动的工作程序。然后使用REDIS库从pidbox清除非活动工作程序。但是,这听起来并不是清除队列的好方法。话虽如此,我仍然无法进入变通状态以保持_kombu.binding.celeryev
清晰。
我期待有一种干净的方法来管理这两个队列,而这两个队列中的芹菜工作者可能正在docker环境中运行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。