проверка воздушного потока на статус предыдущих задач - PullRequest
0 голосов
/ 31 марта 2020

У меня есть группа доступности базы данных с ветвлением, поэтому существует случай, когда все задачи, предшествующие dummyjoin, имеют статус пропущенного.

dummyjoin запускает последующие задачи с правилом all_done.

Поэтому я пытаюсь найти одно правило, которое позволяет мне запускать конец DAG, если все предыдущие задачи для dummyjoin были пропущены, но я не могу его найти.

Или другими словами, запускать последующие задачи только в том случае, если хотя бы одна задача имеет статус success.

Правило one_success из триггера воздушного потока не удовлетворяет моим требованиям, поскольку это правило вызывает следующую задачу AS СКОРО, так как одна из предыдущих задач имеет этот статус, и я хочу дождаться завершения всех предыдущих задач sh, а затем, если есть одна задача со статусом success, вызвать следующие задачи, иначе завершить.

Задания выполняются в следующем составе:

... >> [taskA, taskB, taskC, ..., taskN] >> dummyjoin >> subsequent_tasks

1 Ответ

0 голосов
/ 01 апреля 2020

Как насчет none_failed?

Из документации:

none_failed: все родители не потерпели неудачу (отказ или upstream_failed), т.е. все родители преуспели или были пропущены

Если это не сработает для вас (если вам нужна хотя бы одна из задач для успешного выполнения), я думаю, что единственный способ - это добавить вторую задачу dummyjoin параллельно вашему первому dummyjoin следующим образом:

... >> [taskA, taskB, taskC, ..., taskN] >> [dummyjoin1, dummyjoin2] >> subsequent_tasks

и установите trigger_rule для dummyjoin1 на none_failed и trigger_rule для dummyjoin2 на one_success

...