2

我的 celery 数据库后端设置是:

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

我使用 RabbitMQ 作为我的消息传递者。

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

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

4

2 回答 2

2

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

于 2012-04-20T15:24:22.230 回答
0

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


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

于 2012-07-20T13:11:08.960 回答