Airflow或任何其他选项中任务之间的延迟



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

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

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

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

这两个选项之间是否有偏好。Airflow 2.0有第三种选择吗?请告知。

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

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

第三种选择是在等待报告准备就绪的两个任务之间使用传感器。一个现成的,如果有一个用于您的源,或者一个自定义的,将基本传感器子类化。

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

最新更新