Воздушный поток - TriggerDagRunOperator Cross Check - PullRequest
0 голосов
/ 06 января 2020

Я пытаюсь вызвать один удар из другого. Я использую TriggerDagRunOperator для того же.

У меня есть два следующих знака:

Dag 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

Dag 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', description='Simple tutorial DAG',
          schedule_interval='0 12 * * *',
          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)

dummy_operator >> hello_operator

Проходя через веб-сервер, все выглядит нормально и работает (ie: dag one запускает dag two). Мой вопрос заключается в том, как убедиться, что Dag 2 действительно запущен Dag 1 и не запущен из-за его расписания или каких-либо других ручных действий. В основном, где я могу найти, кто вызвал Дага или как Дага был вызван?

1 Ответ

0 голосов
/ 06 января 2020

Если вы видите древовидное представление Dag 1, Dag 2, запускаемое Dag 1, рассматривается как задачи в этом представлении.

Если вы видите древовидное представление Dag 2, вы можете найти AIRFLOW_CTX_DAG_RUN_ID = trig __ YYYY_MM_DD ... в журнале просмотра.

Если это запланировано, должно быть указано AIRFLOW_CTX_DAG_RUN_ID = запланировано __ ГГГГ_ММ_DDT ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...