在Django中使用Celery保存/恢复GroupResult:没有返回

时间:2016-11-01 15:17:28

标签: python django celery

我正在尝试在Celery中运行任务后保存和恢复GroupResult对象。将返回组结果ID并按预期保存。当我尝试用它恢复GroupResult时:

from project.celery import app 

print(smstask.celery_result_id)
print(app.GroupResult.restore(smstask.celery_result_id))

我得到(例如):

4780fc17-44d8-478f-a41a-e4333aaa03d4
None

对于Celery后端我使用的是Djcelery。它可能是问题的原因吗? CELERY_RESULT_BACKEND = 'djcelery.backends.database:DatabaseBackend'

您还可以尝试其他什么?谢谢!

1 个答案:

答案 0 :(得分:0)

如果您打算稍后使用,则应该save() GroupResult。 然后,您可以通过向restore()方法提供GroupResult.id来恢复它:

from celery import group, result
from app.tasks import foo, bar

group_result = group([foo.s(), bar.s()])()
group_result.save()

restored_group_result = result.GroupResult.restore(group_result.id)
print(restored_group_result)