Получение 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)

У меня была та же проблема и увидев вашу подсказку про сохранение/восстановление в конце концов понял это.