Ace*_*rey 5 python airflow apache-airflow
我想构建一些我需要捕获所有叶子任务并为它们添加下游依赖项以在我们的数据库中完成作业的东西.有没有一种简单的方法可以在Airflow中找到DAG的所有叶节点?
使用upstream_task_ids和downstream_task_ids @property来自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]
Run Code Online (Sandbox Code Playgroud)
Type-Annotations从Python 3.6+
更新1
现在AirflowDAG模型具有强大的@property功能,例如