在Airflow DAG中的任务中设置retry_exponential_backoff参数为True,以便在失败后自动进行指数级的退避重试。
示例代码如下:
from datetime import datetime, timedelta
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2021, 10, 1),
'retry_delay': timedelta(minutes=5),
'retry_exponential_backoff': True
}
dag = DAG('example_dag', default_args=default_args, schedule_interval=timedelta(days=1))
task1 = BashOperator(
task_id='task1',
bash_command='echo "Hello World!"',
retries=3,
dag=dag
)
task2 = BashOperator(
task_id='task2',
bash_command='echo "Retry if failed"',
retries=3,
dag=dag
)
task1 >> task2