这是我的情况:
我正在尝试访问在另一个DAG中运行的自定义运算符的实例。通过执行以下操作,我可以获取正确的DagRun和TaskInstance对象。
dag_bag = DagBag(settings.DAGS_FOLDER)
target_dag = dag_bag.get_dag('target_dag_id')
dr = target_dag.get_dagrun(target_dag.latest_execution_date)
ti = dr.get_task_instance('target_task_id')
我已经打印了上述行获得的TaskInstance对象,它是正确的(正在运行/具有正确的task_id等),但是当我无法访问任务对象时,这将允许我与正在运行的运算符。我应该能够执行以下操作:
running_custom_operator = ti.task #AttributeError: TaskInstance has not attribute task
按照我的方法或者有人知道如何访问正在运行的任务实例的任务对象,任何帮助将不胜感激。
谢谢
答案 0 :(得分:0)
您只需从DAG
对象中抓取任务对象:target_dag.task_dict["target_task_id"]