在调用celery add_consumer之后,worker不会消耗任务

ten*_*eng 12 python queue rabbitmq celery celery-task

我想利用Celery(使用RabbitMQ作为后端MQ)通过不同的队列执行不同风格的任务.一个要求是来自特定队列的消费(由工作人员)应该具有暂停和恢复的能力.

Celery似乎通过调用和具有此功能.虽然我能够从特定工作人员的队列中取消任务的消耗,但我无法让工作人员通过呼叫恢复消费. 此处提供了重现此问题的代码.我的猜测很可能是我在启动工作人员时缺少某种参数或通过参数提供的参数? add_consumercancel_consumeradd_consumerceleryconfig

能够获得一些新鲜的眼睛会很棒.Stackoverflow关于add_consumer和Github的讨论不多.所以我希望这里有一些专家愿意分享他们的想法/经验.

-

我正在运行以下内容:

Windows操作系统,RabbitMQ 3.5.6,Erlang 18.1,Python 3.3.5,芹菜3.1.15

ten*_*eng 0

为了让 celery 工作人员在 Windows 操作系统中恢复工作,我的解决方法如下所列。

  • 更新芹菜:pip install celery==4.1.0
  • 更新 billiard/spawn.py :将第 338 行封装到第 339 行try: except: pass
  • (可选)安装 eventlet: pip install eventlet==0.22.1
  • 在https://github.com/celery/celery/issues/4178中的每个评论中添加--pool=eventlet或启动工作人员时--pool=solo