You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Airflow当前DAG Run完成并禁用后续所有运行?

解决Airflow DAG排空:允许当前运行完成,阻止后续调度

方法1:CLI暂停DAG + 调度器临时配置调整

  • 执行CLI命令暂停目标DAG(不要通过UI暂停,UI操作会直接影响待调度任务状态):
    airflow dags pause <你的DAG_ID>
    
  • 临时修改airflow.cfg中的catchup_by_default为False,确保调度器不会生成新的调度实例。维护完成后记得改回原配置。
  • 等待所有处于running状态的DAG Run执行完毕,再根据需求恢复DAG调度。

方法2:临时修改DAG的调度间隔为None

  • 直接修改DAG代码,将schedule_interval设置为None后重新部署:
    default_args = {
        'owner': 'airflow',
        'start_date': datetime(2023, 1, 1),
    }
    
    with DAG(
        '你的DAG_ID',
        default_args=default_args,
        schedule_interval=None,  # 临时改为无调度间隔
        catchup=False,
    ) as dag:
        # 任务定义代码
    
  • 部署后Airflow不会再生成新的调度实例,当前运行的DAG Run会正常执行完毕。维护结束后,改回原调度间隔(如'*/30 * * * *')重新部署即可。
  • 注意保持catchup=False,避免恢复调度后触发补跑任务。

方法3:UI手动清理待调度实例 + 暂停DAG

  • 进入Airflow UI的DAG详情页,找到「Scheduled Runs」板块,删除所有待触发的调度实例。
  • 暂停该DAG,此时正在运行的DAG Run不受影响,会继续执行至完成。
  • 维护完成后,恢复DAG调度,系统会自动生成后续的调度实例。

核心注意事项

  • 所有操作都要确保DAG的catchup=False,防止维护结束后出现大量补跑任务。
  • 若使用Airflow集群,修改配置后需重启所有调度器节点,确保配置生效。

内容的提问来源于stack exchange,提问作者Raj Rao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 03:04:53