我正在使用RabbitMQ后端运行Celery。
不知何故,我最终成为了一个看起来像僵尸的芹菜工人。我在Flower和celery inspect scheduled
之类的命令中看到了工作程序。但它引用的PID不存在。没有工作程序。这是一个大问题,因为Celery会将任务委派给该工作人员,而这些任务永远不会执行。
我相信发生了什么事,就是在其中运行的docker容器被完全关闭了。但是现在,即使我重新启动docker容器,这个僵尸工人也总是回来。始终具有相同的名称:celery@0357c65d991b
。
Celery文档说,要杀死一个工人,您必须发送其进程TERM
。但是我不能这样做,因为没有过程。这是僵尸。
RabbitMQ必须悬挂引用此工作程序。我在RabbitMQ管理界面中只能找到的队列是名为celery@0357c65d991b.celery.pidbox
的队列。我删除了此队列,但几秒钟后又重新出现。
任何人都可以给我指点一下在哪里可以摆脱这东西吗?