在Apache Airflow中,TimeDeltaSensor可以用于等待指定的时间间隔后再继续执行DAG中的任务。默认情况下,TimeDeltaSensor会等待指定的时间间隔后再执行后续任务。
以下是一个包含代码示例的解决方法:
from datetime import datetime, timedelta
from airflow import DAG
from airflow.operators.dummy_operator import DummyOperator
from airflow.operators.sensors import TimeDeltaSensor
# 定义默认参数
default_args = {
'owner': 'airflow',
'start_date': datetime(2021, 1, 1),
'retries': 1,
'retry_delay': timedelta(minutes=5)
}
# 创建DAG
dag = DAG('example_dag', default_args=default_args, schedule_interval=None)
# 定义时间间隔
time_delta = timedelta(minutes=30)
# 定义任务
wait_task = TimeDeltaSensor(
task_id='wait_task',
delta=time_delta,
dag=dag
)
task1 = DummyOperator(task_id='task1', dag=dag)
task2 = DummyOperator(task_id='task2', dag=dag)
# 设置任务依赖关系
wait_task >> task1 >> task2
在上面的示例中,我们创建了一个名为example_dag
的DAG,并定义了一个时间间隔为30分钟的TimeDeltaSensor任务wait_task
。wait_task
会等待30分钟后再执行后续的任务task1
和task2
。
这样,在DAG中的所有任务都会在wait_task
等待时间结束后才会执行。可以根据需要调整时间间隔来延迟DAG中的所有任务。