Воздушный поток имеет концепцию Правила запуска . Вы можете передать trigger_rule=one_failed
или trigger_rule=all_done
следующему заданию. Вы можете иметь 2 задачи, которые напрямую зависят от первой задачи.
Например:
task_a >> task_b (trigger_rule='all_success') >> task_d (trigger_rule='one_success')
task_a >> task_c (trigger_rule='all_failed') >> task_d (trigger_rule='one_success')
Из документов:
Все операторы имеют аргумент trigger_rule
, который определяет правило, по которому сгенерированная задача запускается. Значение по умолчанию для trigger_rule
равно all_success
и может быть определено как «запускать эту задачу, когда все задачи прямого потока успешно выполнены». Все остальные правила, описанные здесь, основаны на прямых родительских задачах и являются значениями, которые могут быть переданы любому оператору при создании задач:
all_success
: (по умолчанию) все родители преуспели
all_failed
: все родители находятся в состоянии сбоя или ошибки upstream_failed
all_done
: все родители закончили казнь
one_failed
: срабатывает, как только один из родителей вышел из строя, не дожидается завершения работы всех родителей
one_success
: срабатывает, как только хотя бы один родитель преуспевает, он не ждет, пока все родители закончатся
none_failed
: все родители не потерпели неудачу (отказ или upstream_failed), т.е. все родители преуспели или были пропущены
dummy
: зависимости только для показа, запуск по желанию