【问题标题】:Delay between tasks in Airflow or any other option?Airflow 中的任务之间的延迟或任何其他选项?
【发布时间】:2021-05-21 16:04:48
【问题描述】:

我们正在使用气流 2.00。我正在尝试实现一个做两件事的 DAG:

  1. 通过 API 触发报告
  2. 将报告从源下载到目标。

任务 1 和 2 之间至少需要 2-3 小时的间隔。根据我的研究,我有两个选择

  1. 两个 DAG 用于两个任务。安排与第一个 DAG 相隔两小时的第二个 DAG
  2. 提到的两个任务之间的延迟here

这两个选项之间是否存在偏好。 Airflow 2.0 有第三种选择吗?请指教。

【问题讨论】:

    标签: airflow airflow-2.x


    【解决方案1】:

    另一种选择是让传感器等待报告出现。您可以利用传感器的重新调度模式来释放工作人员插槽。

    generate_report = GenerateOperator(...)
    wait_for_report = WaitForReportSensor(mode='reschedule', poke_interval=5 * 60, ...)
    donwload_report = DonwloadReportOperator(...)
    
    generate_report >> wait_for_report >> donwload_report
    

    【讨论】:

      【解决方案2】:

      第三种选择是在等待报告准备好的两个任务之间使用sensor。一个off-the-shelf one,如果你的源有一个,或者一个自定义的子类base sensor

      前两个选项是固定等待时间的不同实现。它有两个问题: 1. 如果在预定义的时间之后仍然没有准备好报告怎么办? 2. 如果报告提前准备好,则不必要的等待。

      【讨论】:

      • 传感器选项是要走的路
      猜你喜欢
      • 1970-01-01
      • 2018-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-19
      • 2020-12-12
      • 1970-01-01
      • 2023-01-21
      相关资源
      最近更新 更多