Airflow http 传感器与仅调用预定 DAG 上的端点有什么区别?

What is the difference between the Airflow http sensor and just calling the endpoint on a scheduled DAG?

我有一个 Airflow DAG,每次从 REST 端点收到特定响应时都需要触发它。我需要在特定时间间隔(几分钟)内检查此端点。我一直在研究如何实现这一点,并发现了两种不同的方法:

  1. 实施 HTTP 传感器并轮询端点直到满足条件,

  1. 只需将我的 DAG 安排为每 2 分钟 运行 并在我的 DAG 的第一个任务中检查 http 端点。

我的问题是,这两种方法之间有什么区别?我的猜测是,1) DAG 总是 运行ning,而传感器每 X 秒调用一次端点,而 2) 如果 API 的响应是否定的,DAG 调用结束。

谢谢!

第一种方法似乎更符合逻辑:

  • 在 Airflow 的第 2 版中,smart sensors 已被添加并且可以 更优化地执行长期 运行 任务 .

  • 连续执行工作流(选项 2)导致许多记录被插入内部 Airflow 数据库,这将需要一个单独的工作流来清除数据库。

  • 第一种方法更接近本作品的逻辑

个人比较喜欢第一种方法