DAG 级别的 retries 不会覆盖任务级别的 retries。如果您希望 DAG 中所有任务有相同的 retries,可以在 DAG 定义中设置默认 retries,例如:
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from datetime import datetime
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2021, 3, 1),
'email_on_failure': False,
'email_on_retry': False,
'retries': 3
}
with DAG('example_dag', default_args=default_args) as dag:
task1 = BashOperator(
task_id='task1',
bash_command='echo "Hello World"',
retries=1
)
task2 = BashOperator(
task_id='task2',
bash_command='echo "Goodbye World"',
retries=2
)
task1 >> task2
在上面的例子中,DAG 中所有任务的默认 retries 为 3,但是您仍然可以在每个任务中覆盖 retries。例如,task1 的 retries 被设置为 1,而 task2 的 retries 被设置为 2。