在Airflow中,任务的最后运行时间(end_date)和实际运行时间可能不一致。这可能是由于任务在调度时发生故障或被手动终止导致的。为了解决此问题,可以使用以下代码示例:
# airflow.cfg
catchup_by_default = False
from airflow import DAG
from airflow.operators.dummy_operator import DummyOperator
default_args = {
'retries': 0,
'catchup': False
}
dag = DAG('example_dag', default_args=default_args)
task1 = DummyOperator(task_id='task1', dag=dag)
task2 = DummyOperator(task_id='task2', dag=dag)
task1 >> task2
from airflow import DAG
from airflow.operators.dummy_operator import DummyOperator
default_args = {
'retries': 0,
'retry_delay': timedelta(minutes=0),
'catchup': False
}
dag = DAG('example_dag', default_args=default_args)
task1 = DummyOperator(task_id='task1', dag=dag)
task2 = DummyOperator(task_id='task2', dag=dag)
task1 >> task2
通过上述步骤,你可以确保Airflow在任务失败后不会自动重试,并且最后运行时间(end_date)和实际运行时间一致。