Получение GroupResult из идентификатора набора задач в сельдерее?
Я начинаю набор задач сельдерея, используя группу сельдерея, как описано в официальная документация
Я также сохраняю идентификатор группы (набора задач) в БД, чтобы опросить сельдерей для состояния набора задач.
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
есть ли способ получить объект GroupResult (т. е. my result
), начиная с идентификатора набора?
Что-то вроде того, что делается в этот вопрос, но работа с группами сельдерея.
Я уже пробовал делать:
r = GroupResult(taskset_id)
но это не работает, как r.results()
- это всегда пустые.
должен ли я использовать GroupResult.save()
и GroupResult.restore()
методы?
1 ответов
Да, вы должны сохранить результат, а затем восстановить ее.
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)
У меня была та же проблема и увидев вашу подсказку про сохранение/восстановление в конце концов понял это.