如何配置Airflow DAG仅运行指定的单个任务
操作存在的问题
你修改完DAG代码后仍然执行了全部4个任务,通常是以下几个原因导致的:
- 你没有触发Airflow Scheduler加载更新后的DAG代码。Airflow的调度器不会实时读取DAG文件的修改,默认存在扫描间隔,修改代码后如果立刻触发运行,调度器仍然会使用旧版本包含4个任务的DAG定义执行。
- 你触发的是修改DAG之前已经生成的旧DAG Run实例。旧的DAG Run在创建时就已经生成了4个任务的执行计划,后续修改DAG代码不会同步更新已经存在的DAG Run的任务列表。
- 你修改的DAG文件路径不是Airflow配置的
dags_folder对应的路径,或者修改后的DAG存在语法错误,导致调度器加载失败,一直沿用最后一次成功加载的旧版DAG。
仅运行
get_all_pets任务的实现方案 方案1:临时单次运行(无需修改DAG代码,推荐)
如果只是临时需要单独跑一次这个任务,不需要改动原有DAG结构:
- UI操作:进入对应DAG的详情页面,找到
get_all_pets任务,点击任务右侧的操作按钮选择触发,勾选Ignore all dependencies选项后确认,即可单独运行该任务,不会触发上下游依赖。 - 命令行操作:执行命令
airflow tasks run <替换为你的DAG ID> get_all_pets <替换为执行日期> --ignore-all-dependencies即可。
方案2:长期保留仅含get_all_pets的DAG
如果需要长期使用只有这一个任务的DAG,按以下步骤操作:
- 确认你修改的是Airflow配置项
dags_folder对应路径下的DAG文件,修改完成后执行airflow dags list-import-errors检查是否存在DAG导入错误,确认修改后的DAG仅包含get_all_pets一个任务。 - 删除该DAG所有旧的历史DAG Run实例,或者直接修改DAG的
dag_id创建一个全新的DAG,避免和旧的执行记录冲突。 - 重启Airflow Scheduler强制刷新DAG缓存,后续触发的新DAG Run就只会执行
get_all_pets单个任务。
内容的提问来源于stack exchange,提问作者Arie
相关产品推荐
相关产品推荐

