正在为每个芹菜任务创建新的RabbitMQ队列
我正在使用芹菜3.1和rabbitmq作为代理。正在为每个芹菜任务创建新的RabbitMQ队列,rabbitmq,celery,Rabbitmq,Celery,我正在使用芹菜3.1和rabbitmq作为代理。 问题是当我发布一个任务(即task.delay())时,消息将被接收 在rabbitmq中创建,回复头包含uniqueid(比如123)。 由于这个原因,rabbitmq正在创建一个名为123的队列,并且对于发布的每个任务都会发生这种情况 假设我运行一个任务10次,就会创建10个回复队列。我甚至不想回复到rabbitmq,目前我将芹菜\u结果\u后端配置为rpc 经纪人amqp://guest@localhost/' 芹菜\u结果\u后端='rp
问题是当我发布一个任务(即task.delay())时,消息将被接收 在rabbitmq中创建,回复头包含uniqueid(比如123)。 由于这个原因,rabbitmq正在创建一个名为123的队列,并且对于发布的每个任务都会发生这种情况 假设我运行一个任务10次,就会创建10个回复队列。我甚至不想回复到rabbitmq,目前我将芹菜\u结果\u后端配置为rpc 经纪人amqp://guest@localhost/' 芹菜\u结果\u后端='rpc://' 任务 @app.task(name=“tasks.multiplynumbers”,bind=True,default\u retry\u delay=5,max\u retries=2,serializer='json',acks\u late=True,track\u start=True) def倍增(自身、x、y): 信息如下: 回复:40872e4f-10fc-313d-a48d-13aa94419f20 相关性识别号:25d6f28a-9b18-49c0-950c-19af7af52770 优先级:0 交付方式:2 标题: 内容编码:utf-8 内容类型:应用程序/json 有效载荷 265字节 编码:字符串 {“taskset”:null,“task”:“reotasks.multilynumbers”,“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的队列
有人遇到过这种情况吗?非常感谢您的帮助经过进一步的研究,我发现当celery\u result\u backend设置为“rpc://”并使用rabbitmq作为代理时,似乎每个任务都会以reply to header发布,并且会根据以下链接中的信息创建一个新队列: 如果我们能够控制将结果发布到哪个队列,以及处理重复的最佳实践,那就太好了
try:
return x * y
except Exception as exc:
raise self.retry(exc=exc)