【问题标题】:Airflow Task failure/retry workflow气流任务失败/重试工作流程
【发布时间】:2019-02-08 18:18:24
【问题描述】:

我有任务重试逻辑,但不清楚 Airflow 在重试开启时如何处理任务失败。

他们的documentation 只是声明on_failure_callback 在任务失败时被触发,但是如果该任务失败并且还标记为重试,这是否意味着on_failure_callbackon_retry_callback 都会被调用?

【问题讨论】:

    标签: airflow


    【解决方案1】:

    重试逻辑/参数将在失败逻辑/参数之前发生。因此,如果您将任务设置为重试两次,它将在失败之前尝试再次运行两次(并因此执行 on_retry_callback )(然后执行 on_failure_callback)。

    确认执行顺序的简单方法是将email_on_retryemail_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)
    }
    

    【讨论】:

    • 谢谢!这完全有帮助。感谢您的解释和我可以采取的确认步骤!
    • @genhernandez 没问题!乐于助人。
    • 对此有一个单独的问题,如果我们不设置 retry_delay 参数,但设置了 retries 参数,默认的 retry_delay 是多少,我已经验证它确实可以传递 retry_delay 值但是做不了解默认值是什么。谢谢
    • @AkashShah retry_delay: timedelta = timedelta(seconds=300) 根据此处的文档airflow.apache.org/docs/apache-airflow/stable/_api/airflow/…
    猜你喜欢
    • 2020-06-24
    • 2022-10-07
    • 2017-08-24
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2021-01-25
    • 2022-12-29
    • 1970-01-01
    相关资源
    最近更新 更多