python—在docker环境中使用redis broker运行时清除celery 事件队列和pid框

1qczuiv0  于 2021-06-08  发布在  Redis
关注(0)|答案(0)|浏览(364)

我在用celery 和redis做经纪人。celery 进程创建以下两个特殊队列,用于管理工人和事件: _kombu.binding.celeryev -用于管理事件 _kombu.binding.celery.pidbox -用于管理工人
基础设施基础设施包括运行celery 工人使用码头集装箱。docker容器可以根据需要放大或缩小。这会导致以下问题:
以前注册的工人的推荐信不断被添加到 _kombu.binding.celery.pidbox 即使工人不复存在
事件队列 _kombu.binding.celeryev 不断填充属于工人的事件,这些事件可能不再有效。
为了清除事件队列,我尝试设置 event_queue_ttl 以及 event_queue_expires 但是没有用。
作为解决方法 _kombu.binding.celery.pidbox ,可以使用celery ping命令来识别活动的工人。然后使用redis库从pidbox中清除非活动worker。然而,这听起来并不是一个很好的清除队列的方法。话虽如此,我仍然无法达到一个变通阶段,以保持 _kombu.binding.celeryev 清除。
我期待着一个干净的方式来管理这两个队列在celery 工人可能在码头环境运行。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题