我正在使用芹菜组启动一组芹菜任务,如official documentation
中所述我还将组(taskset)id存储到db中,以便轮询芹菜的任务集状态。
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
有没有办法从任务集ID开始获取GroupResult对象(即我的result
)?
像this question中所做的那样,但与芹菜组合作。
我已经尝试过:
r = GroupResult(taskset_id)
但它不起作用,因为r.results()
始终为空。
我应该使用GroupResult.save()
和GroupResult.restore()
methods吗?
答案 0 :(得分:20)
是的,你必须保存结果然后恢复它。
job = group([
single_test.s(1, 1),
single_test.s(1, 2),
single_test.s(1, 3),
])
result = job.apply_async()
result.save()
from celery.result import GroupResult
saved_result = GroupResult.restore(result.id)
我遇到了同样的问题,在看到你关于保存/恢复的提示后最终发现了它。