Airflow DAG的调度含义
在Airflow中,DAG(Directed Acyclic Graph,指定有向无环图)是由一系列Task组成的。DAG的调度是指对这些Task的调度方式,决定它们何时被执行。
Airflow中,DAG调度通常由schedule_interval
参数配置。例如,给定一个DAG如下:
from datetime import datetime, timedelta
from airflow import DAG
from airflow.operators.bash import BashOperator
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2021, 1, 1),
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(minutes=5),
}
dag = DAG(
'example_dag',
default_args=default_args,
description='A simple example DAG',
schedule_interval=timedelta(days=1),
)
t1 = BashOperator(
task_id='task_1',
bash_command='echo "Hello world!"',
dag=dag,
)
t2 = BashOperator(
task_id='task_2',
bash_command='echo "Hello airflow!"',
dag=dag,
)
t2.set_upstream(t1)
在这个DAG中,schedule_interval
参数被设置为timedelta(days=1)
,表示DAG会每天执行一次。
Airflow支持多种调度方式,例如cron风格的调度、间隔时间的调度、数据依赖的调度等。开发人员可以根据自己的需求选择合适的调度方式。
注:该示例的代码部分摘自Airflow的官方文档。