首页/数据/数据工程与 ETL 速查/任务超时与完成时限控制
本包目录(311 条)

任务超时与完成时限控制

任务超时控制有两层:单个任务执行超时(execution_timeout)、整个调度批次用时上限(dagrun_timeout);再配合“产出新鲜度”监控,才覆盖按时产出这个目标。

任务级execution_timeout:单任务最长时间,超时被终止
批次级dagrun_timeout:DagRun 最长运行时间
产出级监控目标表/分区的最晚就绪时间

Airflow 超时设置

Airflow 超时设置
from datetime import timedelta

task = BashOperator(
    task_id='load_dwd',
    bash_command='spark-submit /opt/jobs/dwd.py',
    execution_timeout=timedelta(hours=1),
    dag=dag,
)
超时终止后要能安全重跑:确认任务使用分区覆盖或 upsert,避免半成品残留。

易错点

  • 没有超时设置的任务卡死后会一直占用槽位,拖垮后续调度
  • 超时时间设得过短,正常的月末大批次会被误杀,需按峰值评估

数据来源与参考

  • Apache Airflow 官方文档:execution_timeout 与 dagrun_timeout
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌