我对任务有重试逻辑,不清楚重试打开后Airflow如何处理任务失败。
他们的documentation仅声明on_failure_callback
在任务失败时被触发,但是如果该任务失败并且也标记为重试,则意味着on_failure_callback
和{{1 }}会被调用吗?
答案 0 :(得分:3)
重试逻辑/参数将在故障逻辑/参数之前发生。因此,如果您将任务设置为重试两次,它将在失败(然后执行on_retry_callback
)之前再次尝试运行两次(并执行on_failure_callback
)。
一种简单的确认执行顺序的方法是将email_on_retry
和email_on_failure
设置为True
并查看它们出现的顺序。您可以亲自确认它会在失败之前重试。
default_args = {
'owner': 'me',
'start_date': datetime(2019, 2, 8),
'email': ['you@work.com'],
'email_on_failure': True,
'email_on_retry': True,
'retries': 1,
'retry_delay': timedelta(minutes=1)
}