要获取所有父任务的task_id,可以使用Airflow的TaskInstance类中的inlets属性。inlets属性包含了任务的所有父任务的task_id列表。
下面是一个示例代码,展示如何获取所有父任务的task_id:
from airflow.models import TaskInstance
from airflow.utils.dag_cycle_tester import test_cycle
def get_parent_task_ids(dag_id, task_id, execution_date):
ti = TaskInstance(dag_id=dag_id, task_id=task_id, execution_date=execution_date)
parent_task_ids = ti.inlets
return parent_task_ids
dag_id = 'my_dag'
task_id = 'my_task'
execution_date = '2021-01-01'
parent_task_ids = get_parent_task_ids(dag_id, task_id, execution_date)
print(parent_task_ids)
在上面的示例中,get_parent_task_ids函数接收三个参数:dag_id(DAG的ID),task_id(任务的ID)和execution_date(执行日期)。它首先创建一个TaskInstance对象,然后使用inlets属性获取父任务的task_id列表。
注意,这个示例假设你已经创建了一个有效的DAG,并且父任务已经成功执行。你需要根据自己的情况修改dag_id、task_id和execution_date。
希望这个示例能帮到你!