我试图检查已完成的任务的结果. 这有效
from proj.tasks import add
res = add.delay(3,4)
res.get()
7
res.status
'SUCCESS'
res.id
'0d4b36e3-a503-45e4-9125-cfec0a7dca30'
Run Code Online (Sandbox Code Playgroud)
但我想从另一个应用程序运行它.所以我重新运行python shell并尝试:
from proj.tasks import add
res = add.AsyncResult('0d4b36e3-a503-45e4-9125-cfec0a7dca30')
res.status
'PENDING'
res.get() # Error
Run Code Online (Sandbox Code Playgroud)
如何检索结果?
我正在使用官方文档中描述的芹菜组开始一组芹菜任务
我还将组(taskset)id存储到db中,以便轮询celery以获取任务集状态.
job = group([
single_test.s(1, 1),
single_test.s(1, 2),
single_test.s(1, 3),
])
result = job.apply_async()
test_set = MyTestSet()
test_set.taskset_id = result.id
# store test_set into DB
Run Code Online (Sandbox Code Playgroud)
有没有办法result从任务集ID开始获取GroupResult对象(即我的)?像这个问题所做的事情,但与芹菜组合作.
我已经尝试过:
r = GroupResult(taskset_id)
Run Code Online (Sandbox Code Playgroud)
但它不起作用,因为r.results()它总是空的.
我应该使用GroupResult.save()和GroupResult.restore() 方法吗?