获取所有气流叶节点/任务

时间:2017-04-20 21:08:55

标签: python airflow apache-airflow

我想构建一些东西,我需要捕获所有叶子任务并为它们添加下游依赖项,以便在我们的数据库中完成作业。有没有一种简单的方法可以在Airflow中找到DAG的所有叶节点?

1 个答案:

答案 0 :(得分:1)

使用upstream_task_idsdownstream_task_ids @property from BaseOperator

def get_start_tasks(dag: DAG) -> List[BaseOperator]:
    # returns list of "head" / "root" tasks of DAG
    return [task for task in dag.tasks if not task.upstream_task_ids]


def get_end_tasks(dag: DAG) -> List[BaseOperator]:
    # returns list of "leaf" tasks of DAG
    return [task for task in dag.tasks if not task.downstream_task_ids]

Type-Annotations来自Python 3.6+