如何 运行 一次选择并行任务并跳过几个任务

How to run selected parallel task at a time and to skip few task

我有一个有 5 个并行任务的 DAG。我不想一次执行所有这些。我想将一些 flag/value 传递给任务假设如果标志设置为 True 它运行并且如果标志设置为 False 它被跳过。我们可以在 Airflow2 中做到这一点吗? 默认参数是非常基本的参数,我还没有安排 DAG。

我的 DAG Flow 看起来像这样

starttask>>5paralleltask>>endtask

这 5 个并行任务是我使用 for 循环创建的

非常感谢您

我不确定我是否理解要求。 如果你想执行所有任务但要限制并发那么使用max_active_tasks:允许运行并发

的任务实例数

所以在你的情况下你需要设置:

from airflow import DAG
with DAG(
    dag_id='somedag',
    ...,
    max_active_tasks=1,
) as dag:
    ...

如果您想添加跳过逻辑,因此在某些情况下任务会 运行 但在其他情况下不会,那么您需要添加运算符,例如:ShortCircuitOperatorBranchPythonOperator等将决定何时应跳过任务。

我有 5 个并行任务是 bash 个操作员。 为了跳过几个任务和 运行 几个任务,我强制选择的任务失败并显示为跳过我使用 exit 99 和我的 bash 命令,如:

'echo "running";exit 99'

有两个步骤:

  • 先强制任务失败
  • 其次是跳过任务 失败

为了强制任务失败,我添加了一个包含 5 个标志的列表(True/False) 如果标志为真,则任务 运行s 如果为假,则它会被强制失败,然后被跳过。为了跳过我使用的任务 exit 99.

在我的案例中,它正如我预期的那样工作。