Gar*_* In 1 python celery flask
我正在尝试保存组结果以供以后检索:
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)
Run Code Online (Sandbox Code Playgroud)
但是,我收到错误消息:
*** AttributeError: 'DisabledBackend' object has no attribute '_restore_group'
Run Code Online (Sandbox Code Playgroud)
我CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'在我的配置中设置了后端。
我该如何解决这个问题?
您需要使用 celery 应用程序对象进行恢复。
使用文档中的“芹菜入门”作为起点:
任务.py:
from celery import Celery
app = Celery('tasks', broker='amqp://guest@localhost//')
@app.task
def add(x, y):
return x + y
Run Code Online (Sandbox Code Playgroud)
你的代码:
job = group([
add.s(1, 1),
add.s(2, 2)
])
result = job.apply_async()
result.save()
return result.id
Run Code Online (Sandbox Code Playgroud)
别处:
from my.app.tasks import app
result = app.GroupResult.restore(some_id)
Run Code Online (Sandbox Code Playgroud)
您的示例显示您restore在与 - 相同的上下文中运行apply_async- 我假设这是一个简化,并且您知道restore除非您在不同的进程中或由于某种原因无法传递结果对象,否则您不需要使用到新的上下文。
| 归档时间: |
|
| 查看次数: |
1689 次 |
| 最近记录: |