气流-TriggerDagRunOperator交叉检查

我正试图从另一个触发一个dag。我使用的是TriggerDagRunOperator

我有以下两个问题。

日期1:

from datetime import datetime
from airflow import DAG
from airflow.operators.dummy_operator import Dummyoperator
from airflow.operators.python_operator import PythonOperator
from airflow.operators.dagrun_operator import TriggerDagRunOperator


def print_hello():
    return 'Hello world!'

dag = DAG('dag_one',description='Simple tutorial DAG',schedule_interval='0/15 * * * *',start_date=datetime(2017,3,20),catchup=False)

dummy_operator = Dummyoperator(task_id='dummy_task',retries=3,dag=dag)

hello_operator = PythonOperator(task_id='hello_task',python_callable=print_hello,dag=dag)

trigger = TriggerDagRunOperator(
    task_id="test_trigger_dagrun",trigger_dag_id="dag_two",# Ensure this equals the dag_id of the DAG to trigger
    dag=dag,)


dummy_operator >> hello_operator >> trigger

日期2:

from datetime import datetime
from airflow import DAG
from airflow.operators.dummy_operator import Dummyoperator
from airflow.operators.python_operator import PythonOperator

def print_hello():
    return 'Hello XYZABC!'

dag = DAG('dag_two',schedule_interval='0 12 * * *',dag=dag)

dummy_operator >> hello_operator

浏览网络服务器,一切似乎都很好并且可以运行(即:dag 1触发dag 2)。 我的问题是如何确定或检查Dag 2实际上是由Dag 1触发的,而不是由于其计划或任何其他手动操作而触发的。 基本上,在哪里可以找到谁触发了Dag或触发了Dag?

liu12390 回答:气流-TriggerDagRunOperator交叉检查

如果您看到Dag 1的树视图,则在此视图中将Dag 1运行的Dag 2视为任务。

如果看到Dag 2的树视图,则可以在“视图日志”中找到AIRFLOW_CTX_DAG_RUN_ID = trigg ____ YYYY_MM_DD...。

如果安排好了,应该说 AIRFLOW_CTX_DAG_RUN_ID = 已安排 ____ YYYY_MM_DDT ...

,

可以比较dag2的发生时间和dag1中triggle任务的发生时间

本文链接:https://www.f2er.com/2814715.html

大家都在问