В настоящее время у меня есть DAG, состоящая из 4 операторов, как показано ниже:
with DAG('dag', default_args=args, schedule_interval=schedule_interval, catchup=True) as dag:
main_dag = PythonOperator(
task_id='1',
python_callable=func,
provide_context=True,
dag=dag)
run_after_main_dag_1 = PythonOperator(
task_id='1',
python_callable=foo,
provide_context=True,
dag=dag)
run_after_main_dag_2 = BranchPythonOperator(
task_id='2',
python_callable=foo,
provide_context=True)
run_after_main_dag_2_2 = PythonOperator(
task_id='3',
python_callable=foo,
provide_context=False,
dag=dag)
#this runs sequential, but shouldn't.
main_dag >> run_after_main_dag_1 >> run_after_main_dag_2 >> run_after_main_dag_2_2
Вот чего я хотел бы достичь:
Выполнить main_dag
оператор
Как только main_dag
закончится, запустите run_after_main_dag_1
и run_after_main_dag_2
параллельно, так как они не зависят друг от друга.
Я просто не могу найти, как добиться этого в документации нигде.Должен быть простой синтаксис, который я полностью игнорировал.
Кто-нибудь, кто знает, как это сделать?