Airflow 如何自动重新安排任务

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

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


谢谢

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

  • 重试延迟(timedelta)–重试之间的延迟
  • 重试\指数\退避(bool)–通过在重试延迟上使用指数退避算法,允许在重试之间逐步延长等待时间(延迟将转换为秒)
  • 最大重试延迟(timedelta)–重试之间的最大延迟间隔
把这三个元素很好地混合在一起,你就会得到你想要的


这可以在DAG默认参数中设置。也可以为每个单独的任务/操作员设置。