Skip to content

Instantly share code, notes, and snippets.

@iht
Created June 22, 2020 19:12
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save iht/bbb81c28e6139a1d9b9a5074274ab946 to your computer and use it in GitHub Desktop.
The child master DAG, that executes tasks only when both parent DAGs are completed successfully
"""Trigger Dags #1 and #2 and do something if they succeed."""
from airflow import DAG
from airflow.operators.sensors import ExternalTaskSensor
from airflow.operators.dummy_operator import DummyOperator
from airflow.utils.dates import days_ago
with DAG(
'master_dag',
schedule_interval='*/1 * * * *', # Every 1 minute
start_date=days_ago(0),
catchup=False) as dag:
def greeting():
"""Just check that the DAG is started in the log."""
import logging
logging.info('Hello World from DAG MASTER')
externalsensor1 = ExternalTaskSensor(
task_id='dag_1_completed_status',
external_dag_id='dag_1',
external_task_id=None, # wait for whole DAG to complete
check_existence=True,
timeout=120)
externalsensor2 = ExternalTaskSensor(
task_id='dag_2_completed_status',
external_dag_id='dag_2',
external_task_id=None, # wait for whole DAG to complete
check_existence=True,
timeout=120)
goodbye_dummy = DummyOperator(task_id='goodbye_master')
[externalsensor1, externalsensor2] >> goodbye_dummy
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment