如何自动重新安排气流任务

时间:2019-04-21 08:22:01

标签: airflow airflow-scheduler

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

谢谢!

1 个答案:

答案 0 :(得分:1)

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

  • retry_delay(timedelta)–重试之间的延迟
  • retry_exponential_backoff(布尔型)–通过使用重试延迟的指数退避算法(延迟将转换为秒),允许两次重试之间的渐进等待时间更长。
  • max_retry_delay(timedelta)–重试之间的最大延迟间隔

在这三个方面取得良好的组合应该可以为您提供所需的东西。

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