gpt4 book ai didi

python - 调用 celery add_consumer 后 worker 不消费任务

转载 作者:太空狗 更新时间:2023-10-29 17:50:53 25 4
gpt4 key购买 nike

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

celery ,好像有this capability通过调用 add_consumercancel_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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com