我正在尝试保存组结果以供日后检索:
job = group([
add.s(1, 1),
add.s(2, 2)
])
result = job.apply_async()
result.save()
from celery.result import GroupResult
saved_result = GroupResult.restore(result.id)
然而,我收到错误:
*** AttributeError: 'DisabledBackend' object has no attribute '_restore_group'
我在配置中设置了后端CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
。
我该如何解决这个问题?
答案 0 :(得分:4)
您需要使用芹菜应用程序对象进行恢复。
在docs中使用“celery入门”作为一个起点:
tasks.py:
Schema 'USERNAME' does not exist
您的代码:
from celery import Celery
app = Celery('tasks', broker='amqp://guest@localhost//')
@app.task
def add(x, y):
return x + y
别处:
job = group([
add.s(1, 1),
add.s(2, 2)
])
result = job.apply_async()
result.save()
return result.id
您的示例显示您在与from my.app.tasks import app
result = app.GroupResult.restore(some_id)
相同的上下文中运行restore
- 我假设这是一个简化,并且除非您知道您不需要使用apply_async
处于不同的进程中,或者由于某种原因,您无法将结果对象传递给新的上下文。