如何在Airflow中启用Subdag?

时间:2017-12-18 14:41:20

标签: airflow apache-airflow

在Airflow文档中,如下所述

“Subdags必须有一个时间表并启用

即使将子标记作为较大dag的一部分触发,如果其日程安排设置为None或'@once',则subdag运算符将成功而不执行任何操作“。

但不清楚,我们如何启用Subdags。有没有办法启用Subdag?

1 个答案:

答案 0 :(得分:1)

您可以像这样创建一个SubDAG:

from airflow import DAG
from airflow.operators.dummy_operator import DummyOperator
from airflow.operators.subdag_operator import SubDagOperator

default_args = {
    'email_on_failure': False,
    'email_on_retry': False,
    'start_date': datetime(2017, 12, 16),
}

schedule_interval = "@daily"

def create_subdag(main_dag, subdag_id):
    subdag = DAG('{0}.{1}'.format(main_dag.dag_id, subdag_id),
                default_args=default_args)
    DummyOperator(
        task_id='foo',
        dag=subdag)
    return subdag

main_dag = DAG(
    dag_id='main_dag',
    schedule_interval=schedule_interval,
    default_args=default_args,
    max_active_runs=1
)

my_subdag = SubDagOperator(
    task_id='subdag',
    dag=main_dag,
    retries=3,
    subdag=create_subdag(main_dag, 'subdag')
)