- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想利用 Celery(使用 RabbitMQ 作为后端 MQ)通过不同的队列执行不同风格的任务。一个要求是来自特定队列的(由工作人员)消费应该具有暂停和恢复的能力。
celery ,好像有this capability通过调用 add_consumer
和 cancel_consumer
。虽然我能够取消特定工作人员队列中任务的消费,但我无法通过调用 add_consumer
让工作人员恢复消费。 The code to reproduce this issue is provided here .我的猜测可能是我缺少某种在 celeryconfig
中或在启动 worker 时通过参数提供的参数?
如果能对此有一些新的看法,那就太好了。关于 add_consumer 的 Stackoverflow 和 Github 中都没有太多讨论。所以我希望这里有一些专家愿意分享他们的想法/经验。
--
我正在运行以下程序:
Windows 操作系统、RabbitMQ 3.5.6、Erlang 18.1、Python 3.3.5、celery 3.1.15
最佳答案
要从队列中恢复,您需要指定队列名称以及目标工作人员。这是如何做的。
app.control.add_consumer(queue='high', destination=['celery@asus'])
这里是add_consumer签名
def add_consumer(state, queue, exchange=None, exchange_type=None,
routing_key=None, **options):
在你的例子中,你正在调用
app.control.add_consumer('high', destination=['celery@high1woka'])
因此 high
被传递到状态并且队列为空。所以它无法恢复。
关于python - 调用 celery add_consumer 后 worker 不消费任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45784824/
我想利用 Celery(使用 RabbitMQ 作为后端 MQ)通过不同的队列执行不同风格的任务。一个要求是来自特定队列的(由工作人员)消费应该具有暂停和恢复的能力。 celery ,好像有this
我是一名优秀的程序员,十分优秀!