Airflow 定义DAG任务顺序的正确方法

Airflow 定义DAG任务顺序的正确方法,airflow,Airflow,我在DAG中有一组相当长的任务,每个任务都有一个相当长的任务id,细节都是相关的,并且命名不能缩短。 目前我写的是: a_very_long_long_named_task_1 >> a_very_long_long_named_task_2 >> a_very_long_long_named_task_3 >> a_very_long_long_named_task_4 >> a_very_long_long_named_task_5 在其他D

我在DAG中有一组相当长的任务,每个任务都有一个相当长的
任务id
,细节都是相关的,并且命名不能缩短。
目前我写的是:

a_very_long_long_named_task_1 >> a_very_long_long_named_task_2 >> a_very_long_long_named_task_3 >> a_very_long_long_named_task_4 >> a_very_long_long_named_task_5
在其他DAG中,我看到它被分成多行,尽管有重复:

a_very_long_long_named_task_1 >> a_very_long_long_named_task_2
a_very_long_long_named_task_2 >> a_very_long_long_named_task_3
a_very_long_long_named_task_3 >> a_very_long_long_named_task_4
a_very_long_long_named_task_4 >> a_very_long_long_named_task_5
推荐哪一种?是否有一种最佳实践,或者是另一种更好的方法来定义任务顺序?

  • 您可以在创建(实例化)任务时不断将任务添加到
    python
    列表(或
    dict
    /类似的内容)
  • 最后,您可以通过编程将它们连接起来
请注意,该代码段未经测试

输入导入列表中的

从afflow.models.baseoperator导入baseoperator
我的任务:列表[BaseOperator]=[
一个名为任务1的非常长的任务,
一个名为任务2的非常长的任务,
一个名为任务3的非常长的任务,
一个名为任务4的非常长的任务,
一个名为任务5的非常长的任务
]
..
#定义一个实用工具方法来设置依赖项b/w任务
def wire_任务(我的_任务:列表[BaseOperator])->无:
"""
接受任务列表并将其链接起来的实用方法
:param my_tasks:任务列表(操作员实例)
:键入我的任务:列表[BaseOperator]
:返回无
"""
对于范围内的i(1,len(我的任务)):
#这相当于我的_任务[i-1]。设置_上游(我的_任务[i])
我的任务[i-1]>>我的任务[i]
#调用实用程序方法连接任务
连线任务(我的任务=我的任务)