【发布时间】:2014-07-23 12:34:32
【问题描述】:
在 django 1.6 中使用 celery (3.1.8 + ) 所有任务都定义为忽略结果(这是正确的语法吗?)
@shared_task(ignore_result=True)
def somefunc():
pass
当我查看 rabbitmq 队列时,我看到越来越多由 celery 创建的队列,其名称如下:
19926fa9965e40c19ed9640c2b42ce1e
并包含一条消息(类似于以下内容):
correlation_id:19926fa9-965e-40c1-9ed9-640c2b42ce1e 优先级:0 交付模式:2 个标头:内容编码:二进制 content_type: application/x-python-serialize Payload 118 字节 编码:base64 gAJ9cQEoVQZzdGF0dXNxAlUHU1VDQ0VTU3EDVQl0cmFjZWJhY2txBE5VBnJlc3VsdHEFTlUHdGFza19pZHEGVSQxOTkyNmZhOS05NjVlLTQwYzEtOWVkOS02 NDBjMmI0MmNlMWVxB1UIY2hpbGRyZW5xCF11Lg==
如果我将 celery 设置为“始终渴望”模式,那么问题就解决了,但这显然不是生产服务器的好解决方案。
有什么线索吗?这是否连接到 ignore_result 选项?某处缺少一些任务?还有什么?
感谢您的帮助
【问题讨论】:
-
到底是什么问题?
19926fa9965e40c19ed9640c2b42ce1e在我看来是一个任务 ID,所以你只是看到了 rabbitmq 传输的任务。 -
@SébastienDeprez 听起来每条消息都有自己的队列,这不是预期的行为。