Django-celery / RabbitMQ在哪里存储任务结果?

时间:2012-04-19 23:54:19

标签: django celery

我的芹菜数据库后端设置是:

CELERY_RESULT_BACKEND = "database"
CELERY_RESULT_DBURI = "mysqlite.db"

我使用RabbitMQ作为我的消息。

似乎没有任何结果存储在数据库中,但我可以在任务完成后读取结果。它们是在内存还是RabbitMQ缓存中?

我没有尝试多次读取相同的结果,所以也许它只读一次然后噗!

2 个答案:

答案 0 :(得分:1)

CELERY_RESULT_DBURI用于sqlalchemy结果后端,而不是Django结果后端。 Django总是使用在DATABASES设置中配置的默认数据库(如果在较旧的Django版本上,则使用DATABASE_ *设置)

答案 1 :(得分:0)

我的芹菜守护进程工作得很好,但我在收集任务结果时遇到了困难。 task_result.get()导致超时。和task.state总是PENDING ..(但工作完成)我尝试了单独的sqlite dbs,一个由工人共享的postgres数据库。但我仍然无法得到结果。 CELERY_RESULT_DBURI对我来说似乎没用(对于芹菜2.5)我认为这是一个较新的配置。欢迎任何建议......


编辑:这都是我的错: 我使用装饰器为我的任务提供额外的参数, ignore_results = True 参数创建此问题。我删除了这个键,它就像一个魅力:)