Как установить нисходящую задачу после завершения 2 задач

#airflow

#воздушный поток

Вопрос:

Я выполняю задачи (T1 и T2) параллельно. Как мне установить нисходящую задачу T3, которая зависит от успешного завершения T1 и T2

[T1,T2].set_downstream(T3)

Но, получая следующую ошибку AttributeError: объект ‘list’ не имеет атрибута ‘set_downstream’

Ответ №1:

Существует множество способов реализации зависимостей задач, зависимостей для управления чтением или просто смотрите Примеры ниже.

 T1.set_downstream(T3)
T2.set_downstream(T3)
  

или

T3.set_upstream([T1, T2])

или

[T1, T2] >> T3

Ответ №2:

Как настроить восходящую нисходящую зависимость :

Давайте возьмем этот пример: он содержит 3 задачи, поэтому вы можете установить зависимость восходящий-нисходящий поток следующим образом :

[t1, t2] >> t3

 t1 = PythonOperator(
    task_id='t1',
    dag=dag,
    python_callable=call_me,
)

t2 = PythonOperator(
    task_id='push_by_returning',
    dag=dag,
    python_callable=call_me_too(),
)

t3 = PythonOperator(
    task_id='puller',
    dag=dag,
    python_callable=status_chcker,
    trigger_rule="all_done"
)

   

[t1, t2] >> t3  
  

Как настроить условие для запуска нисходящего задания :

trigger_rule=»all_done»

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

  • all_success: (по умолчанию) все родители завершились успешно

  • all_failed: все родители находятся в состоянии failed или upstream_failed

  • all_done: все родительские элементы завершены с их выполнением

  • one_failed: срабатывает, как только хотя бы один родительский элемент завершается неудачно, он не ждет, пока будут выполнены все родительские элементы

  • one_success: срабатывает, как только хотя бы один родительский элемент завершается успешно, он не ждет завершения всех родительских элементов

  • none_failed: все родители не потерпели неудачу (сбой или upstream_failed), т.Е. Все родители завершились успешно или были пропущены

  • none_skipped: ни один родительский элемент не находится в пропущенном состоянии, т.Е. Все родительские элементы находятся в состоянии success, failed или upstream_failed

  • фиктивные: зависимости только для показа, запускаются по желанию