如何在 Airflow DAG 中循环顺序运行任务?

Sti*_*enb 3 python airflow

假设我有一个示例 DAG 的片段:

variables = ['first', 'second', 'third']

def run_dag_task(variable):
  task = dag_task(variable)
  return task

for variable in variables:
  run_dag_task(variable)
Run Code Online (Sandbox Code Playgroud)

此代码将为三个变量并行运行三个任务。现在,假设我希望在开始第二个任务之前完成第一个任务,并在开始第三个任务之前完成第二个任务。我将如何用循环来做到这一点?那可能吗?

jos*_*oss 6

variables = ['first', 'second', 'third']

def run_dag_task(variable):
  task = dag_task(variable)
  return task
task_arr=[]
task_arr.append(run_dag_task(variable[0]))

for variable in variables[1:]:
  task=run_dag_task(variable)
  task_arr[-1]>>task
  task_arr.append(task)
Run Code Online (Sandbox Code Playgroud)

这应该可以满足您的需要。将任务添加到数组并设置关系