Сельдерей: Как сохранить результаты только для последнего звена цепи? - PullRequest
2 голосов
/ 06 июня 2019

У меня есть цепочка задач:

result = celery.chain(task_a.s(), task_b.s())()

Меня интересует только результат task_b(), однако сельдерей сохраняет результаты как task_a(), так и task_b() в бэкэнд.

Есть ли способ сохранить результаты только для task_b()?

Ответы [ 2 ]

1 голос
/ 06 июня 2019

Я не проверял это, но на основе документов ( 1 , 2 ) должна быть возможность добавить параметр ignore_result=True к .s() вызовам.

Если вышеперечисленное не работает, вы всегда можете настроить всю задачу не сохранять результаты (добавив ignore_result=True к классу задач или декоратору)

Важно: согласно Документы Celery , задачи, используемые в аккордах, не могут игнорировать их результаты. Так что, хотя это не должно касаться цепочек, об этом следует знать, если вы планируете использовать аккорды.

0 голосов
/ 06 июня 2019

Попробуйте смешать ссылку с игнорировать результаты для первого задания.

add.apply_async((2, 2),ignore_result=True, link=add.s(16))
...