如何 运行 一次选择并行任务并跳过几个任务
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:
...
如果您想添加跳过逻辑,因此在某些情况下任务会 运行 但在其他情况下不会,那么您需要添加运算符,例如:ShortCircuitOperator
、BranchPythonOperator
等将决定何时应跳过任务。
我有 5 个并行任务是 bash 个操作员。
为了跳过几个任务和 运行 几个任务,我强制选择的任务失败并显示为跳过我使用 exit 99
和我的 bash 命令,如:
'echo "running";exit 99'
有两个步骤:
- 先强制任务失败
- 其次是跳过任务
失败
为了强制任务失败,我添加了一个包含 5 个标志的列表(True/False)
如果标志为真,则任务 运行s 如果为假,则它会被强制失败,然后被跳过。为了跳过我使用的任务 exit 99
.
在我的案例中,它正如我预期的那样工作。
我有一个有 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:
...
如果您想添加跳过逻辑,因此在某些情况下任务会 运行 但在其他情况下不会,那么您需要添加运算符,例如:ShortCircuitOperator
、BranchPythonOperator
等将决定何时应跳过任务。
我有 5 个并行任务是 bash 个操作员。
为了跳过几个任务和 运行 几个任务,我强制选择的任务失败并显示为跳过我使用 exit 99
和我的 bash 命令,如:
'echo "running";exit 99'
有两个步骤:
- 先强制任务失败
- 其次是跳过任务 失败
为了强制任务失败,我添加了一个包含 5 个标志的列表(True/False)
如果标志为真,则任务 运行s 如果为假,则它会被强制失败,然后被跳过。为了跳过我使用的任务 exit 99
.
在我的案例中,它正如我预期的那样工作。