Airflow 气流DAG循环-如何使每次迭代顺序而不是并行
我有一个Apache Airflow DAG,如下所示:Airflow 气流DAG循环-如何使每次迭代顺序而不是并行,airflow,directed-acyclic-graphs,Airflow,Directed Acyclic Graphs,我有一个Apache Airflow DAG,如下所示: DAG_NAME='my_dag' sections = ["0", "1", "2", "3"] with DAG(DAG_NAME, default_args=default_args, schedule_interval=None) as dag: for s in sections: a = DummyOpe
DAG_NAME='my_dag'
sections = ["0", "1", "2", "3"]
with DAG(DAG_NAME, default_args=default_args, schedule_interval=None) as dag:
for s in sections:
a = DummyOperator(task_id=f"section_{s}_start")
b = SubDagOperator(task_id=f"init_{s}_subdag",subdag=init_section(DAG_NAME,f"init_{s}_subdag", default_args))
c = SubDagOperator(task_id=f"process_{s}_subdag", subdag=process_section(DAG_NAME,f"process_{s}_subdag", default_args))
d = SubDagOperator(task_id=f"update_{s}_subdag", subdag=update_section(DAG_NAME,f"update_{s}_subdag", default_args))
e = DummyOperator(task_id=f"section_{s}_end")
a>>b>>c>>d>>e
这段代码将我的任务呈现为这样
如何使任务的顺序为:
区段0\u开始>>初始区段0\u子段>>处理区段0\u子段>>更新区段0\u子段>>区段0\u结束
区段0\u结束>>区段1\u开始
第1部分开始>>初始化第1部分>>处理第1部分>>更新第1部分>>结束
以此类推,从第0节开始,以第3节任务结束
谢谢修改for循环如下:
previous_e = None
for s in sections:
a = ...
...
e = ...
if previous_e:
previous_e >> a
a>>b>>c>>d>>e
previous_e = e
您确定需要子DAG来完成此任务吗?@MeghdeepRay每个子DAG中都有更多需要并行运行的任务。例如,我在每个处理子数据集中读取5个需要并行运行的文件。此外,我希望我的团队能够将我的子DAG用于他们的代码,因此我尝试制作一个通用模板。你有没有其他更好的方法来实现这一点?