【问题标题】:How to automatically reschedule airflow tasks如何自动重新安排气流任务
【发布时间】:2019-04-21 08:22:00
【问题描述】:

我正在运行一个每小时的进程,该进程从一个位置(“原点”)获取数据并将其移动到另一个位置(“目标”)。在大多数情况下,数据在特定时间到达我的来源,一切正常,但可能会出现延迟,当这种情况发生时,气流中的任务会失败,需要手动重新运行。解决这个问题的一种方法是给数据更多的时间到达,但我更喜欢只有在实际上有延迟的情况下才这样做。另外,我不想让传感器长时间等待数据,因为它可能导致死锁(最好不要让每小时任务运行超过 1 小时)。气流是否允许针对给定条件(失败或不存在数据)重新安排任务,这样我们就不必手动重新运行失败的任务?

谢谢!

【问题讨论】:

    标签: airflow airflow-scheduler


    【解决方案1】:

    查看 BaseOperator 的以下参数(这是所有运算符的父类):

    • retry_delay (timedelta) – 重试之间的延迟
    • retry_exponential_backoff (bool) – 通过对重试延迟使用指数退避算法,允许在重试之间逐步延长等待时间(延迟将转换为秒)
    • max_retry_delay (timedelta) - 重试之间的最大延迟间隔

    充分利用这三者应该可以满足您的需求。

    https://incubator-airflow.readthedocs.io/en/latest/code.html

    【讨论】:

    • 这可以在你的 DAG 默认参数中设置。或者可以为每个单独的任务/操作员设置这些。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-25
    • 2018-10-12
    • 1970-01-01
    • 2016-12-28
    • 2017-09-08
    • 1970-01-01
    • 2010-10-12
    相关资源
    最近更新 更多