2017-12-18 85 views
0

气流文件,它被提及如下如何在气流中启用子标签?

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

即使subdags被触发作为一个更大的DAG的一部分,如果他们的日程安排设置为无或“@一旦“,这个subdag运营商就会成功而不做任何事情”。

但不清楚,我们如何启用子标签。有什么办法来启用Subdag吗?

回答

0

您可以创建这样一个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') 
)