我使用芹菜3.1和rabbitmq作为经纪人 问题是当我发布一个任务(即task.delay())消息时 在rabbitmq中创建,带有包含uniqueid的回复标题(比如123)。 由于这个,rabbitmq正在创建一个名为123的队列,这对于发布的每个任务都会发生。
假如我运行了10次任务,则会创建10个回复队列。我甚至不想回复去rabbitmq,目前我将CELERY_RESULT_BACKEND配置为rpc.Here是配置
BROKER_URL ='amqp://来宾@ localhost //' CELERY_RESULT_BACKEND ='rpc://'
任务 @ app.task(名称= “tasks.multiplynumbers”,绑定=真,default_retry_delay = 5,MAX_RETRIES = 2,串行= 'JSON',acks_late =真,track_started =真)
def multiply(self,x,y):
try:
return x * y
except Exception as exc:
raise self.retry(exc=exc)
以下是信息:
reply_to: 40872e4f-10fc-313d-a48d-13aa94419f20
correlation_id:25d6f28a-9b18-49c0-950c-19af7af52770
优先级:0
delivery_mode:2
标头: content_encoding:utf-8
content_type:application / json
有效载荷
265个字节 编码:字符串 {“taskset”:null,“task”:“reotasks.multiplynumbers”,“errbacks”:null,“timelimit”:[null,null],“callbacks”:null,“utc”:true,“chord”:null ,“expires”:null,“args”:[3,8],“retries”:0,“id”:“25d6f28a-9b18-49c0-950c-19af7af52770”,“eta”
发布上述消息后,将创建名为 40872e4f-10fc-313d-a48d-13aa94419f20 的队列。
有没有人遇到过这种情况?非常感谢任何帮助
答案 0 :(得分:1)
经过进一步的研究,我发现celery_result_backend何时被设置为&rcc://'并使用rabbitmq作为代理,似乎每个任务都使用reply-to标头发布,并根据以下链接中的信息创建新队列:
https://www.rabbitmq.com/direct-reply-to.html
如果我们可以控制哪个队列发布结果以及任何最佳实践来处理
,那将是件好事。