数据岗位面试题更新 2026-08-05

请说明在 Airflow 中配置任务执行时间与调度周期的具体方法。

数据技术原理Apache Airflow

考察说明

考察对 Airflow 调度机制中执行时间与间隔配置的掌握情况。

回答思路

  1. 【回答框架 1】Airflow 中通过 DAG 参数 schedule_interval 设置调度间隔,可选 cron 表达式、timedelta 对象或预设常量如 @daily。
  2. 【回答框架 2】任务在调度周期结束后触发,每个周期运行一次,start_date 决定首次调度参考时间,但实际执行时间取决于调度器。
  3. 【回答框架 3】对于需要具体执行时间的场景,可通过 cron 表达式精确指定小时和分钟,如 '0 8 * * *' 表示每天早上八点。
  4. 【回答框架 4】若需要不同任务在不同时间执行,可在 DAG 内为各任务设置执行时间,例如通过 PythonOperator 的 execution_timeout 控制最长运行时间,但调度时间主要由 DAG 的 schedule_interval 决定。
  5. 【回答框架 5】重要提示:任务的实际执行时间还受 catchup 和 depends_on_past 等参数影响,需在生产环境中仔细配置。
  6. 【关键点 1】schedule_interval 支持 cron、timedelta 和预设常量,是控制调度周期的核心参数。
  7. 【关键点 2】start_date 与 schedule_interval 共同决定首次执行时间。
  8. 【关键点 3】使用 cron 表达式可精确到分钟,实现用户在特定时刻运行的需求。
  9. 【易错点 1】不要将 start_date 当作立即执行时间,其含义是调度起算基准,实际执行需等待第一个间隔结束。
  10. 【易错点 2】避免将 catchup 与 schedule_interval 混淆,初始设置不当可能导致大量回填。
  11. 【易错点 3】当 schedule_interval 为 None 时,DAG 不会被定期调度,需通过手动触发或外部触发器运行。