在celery中保存组结果:AttibuteError

时间:2016-02-25 00:00:07

标签: python flask celery

我正在尝试保存组结果以供日后检索:

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'

我该如何解决这个问题?

1 个答案:

答案 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处于不同的进程中,或者由于某种原因,您无法将结果对象传递给新的上下文。