在Airflow中,可以使用default_args
参数来定义DAG的持续时间。default_args
是一个字典,包含DAG的默认参数,其中可以定义任务的超时时间。下面是一个示例:
from datetime import datetime, timedelta
from airflow import DAG
from airflow.operators.dummy_operator import DummyOperator
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2022, 1, 1),
'retries': 1,
'retry_delay': timedelta(minutes=5),
'execution_timeout': timedelta(hours=2) # 定义任务的超时时间为2小时
}
dag = DAG('example_dag', default_args=default_args, schedule_interval='@daily')
task1 = DummyOperator(task_id='task1', dag=dag)
task2 = DummyOperator(task_id='task2', dag=dag)
task1 >> task2
在上面的示例中,我们定义了一个名为example_dag
的DAG,它包含两个DummyOperator任务task1
和task2
。default_args
字典定义了DAG的默认参数,其中execution_timeout
参数指定了任务的超时时间为2小时。
注意:execution_timeout
参数是可选的,如果不指定,默认超时时间为0,即没有超时限制。
这样,当DAG中的任何任务执行时间超过2小时时,Airflow会将任务标记为超时,并根据重试策略进行重试或失败处理。