在 Airflow 中,通常可以配置哪些类型的任务调度方式?
考察说明
考察对 Airflow 调度机制的理解,包括定时和依赖触发等不同调度模式。
回答思路
- 【回答框架 1】Airflow 的任务调度主要分为时间驱动和依赖驱动两大类。时间驱动通过 schedule_interval 设置 cron 表达式或 timedelta 对象,实现定频或定时触发;依赖驱动通过 upstream 和 downstream 定义任务间的依赖关系,只有上游成功完成后下游才被调度执行。
- 【回答框架 2】此外还支持手动触发,通过 UI、CLI 或 API 可以立即运行 DAG 或任务,常用于测试或补数。对于外部事件触发,可以使用传感器(Sensor)或触发器(Trigger)实现,但需注意传感器会占用调度资源并增加延迟。
- 【回答框架 3】在复杂场景下,可结合时间调度与依赖调度,例如先等待数据文件到达(传感器)再执行下游计算,从而构建更稳健的数据管道。
- 【关键点 1】时间驱动通过 schedule_interval 设置 cron 或 timedelta;
- 【关键点 2】依赖驱动通过任务间的上下游关系自动触发;
- 【关键点 3】传感器可实现外部事件或数据就绪的触发;
- 【关键点 4】手动触发通过 UI、CLI 或 API 完成。
- 【易错点 1】不能将 fixed rate 与 cron 混为一谈,二者触发规则不同;
- 【易错点 2】传感器过长等待会阻塞 worker 资源,应合理设置超时。