在Airflow中,任务的开始日期、结束日期和持续时间由调度器根据DAG和任务之间的依赖关系自动计算得出。但是,如果您希望手动指定任务的开始日期、结束日期和持续时间,可以使用以下代码示例:
from datetime import datetime, timedelta
from airflow import DAG
from airflow.operators.dummy_operator import DummyOperator
default_args = {
'start_date': datetime(2021, 1, 1), # 指定任务的开始日期
'end_date': datetime(2021, 1, 10), # 指定任务的结束日期
'depends_on_past': True, # 任务依赖于过去的任务
'retries': 3, # 任务失败时的重试次数
'retry_delay': timedelta(minutes=5), # 重试间隔
}
dag = DAG('example_dag', default_args=default_args, schedule_interval=timedelta(days=1))
task1 = DummyOperator(task_id='task1', dag=dag)
task2 = DummyOperator(task_id='task2', dag=dag)
task1 >> task2 # 定义任务之间的依赖关系
# 如果您希望任务持续一段时间,可以使用任务的执行时间和间隔来设置任务的持续时间
task3 = DummyOperator(task_id='task3', dag=dag, execution_date=datetime(2021, 1, 1, 0, 0), start_date=datetime(2021, 1, 1, 0, 0))
task4 = DummyOperator(task_id='task4', dag=dag, execution_date=datetime(2021, 1, 1, 0, 0), start_date=datetime(2021, 1, 1, 0, 0))
task3.set_downstream(task4)
在上述代码示例中,我们通过default_args
参数设置了任务的开始日期(start_date
)和结束日期(end_date
)。通过设置depends_on_past
参数为True
,我们将任务设置为依赖于过去的任务。此外,我们还可以使用retries
参数和retry_delay
参数来设置任务失败时的重试次数和重试间隔。
对于需要指定持续时间的任务,我们可以在任务的实例化过程中使用execution_date
参数和start_date
参数来指定任务的执行时间和开始时间。
请注意,如果您手动指定了任务的开始日期、结束日期和持续时间,调度器将不再自动计算这些值。
下一篇:Airflow任务失败