如何手动运行Airflow中从未执行过的新增任务
Airflow 单独手动触发未运行过的新增DAG任务方案
这是Airflow UI的默认逻辑限制:没有绑定对应DagRun记录的任务实例不会在UI生成可交互入口,不需要触发整个DAG全量运行,以下三种方法都可以实现单独跑新任务的需求:
命令行直接触发(全版本通用,最省事)
登录Airflow部署所在的服务器,切换到Airflow运行身份用户(通常为airflow用户),执行对应命令即可直接跑单任务,不会影响其他任务:# Airflow 全版本通用格式 airflow tasks run <你的DAG_ID> <新增任务的TASK_ID> <已完成调度的历史逻辑日期> # 示例 airflow tasks run daily_user_stat add_new_roi_cal 2024-05-20Airflow 2.3+版本也可以用
test子命令,会自动忽略上下游依赖,更适合临时验证新任务逻辑:airflow tasks test <DAG_ID> <TASK_ID> <逻辑日期>注意:逻辑日期一定要选该DAG已经跑完的历史日期,不要选未来时间,避免打乱原有调度时序。命令执行完刷新UI,该任务就会生成运行记录,后续可直接在UI上操作。
带配置触发DAG(无需命令行,纯UI操作)
不想敲命令的话,不要直接点普通的触发DAG按钮:- 点击DAG页面右上角的「Trigger DAG w/ config」(带配置触发)
- 在弹出的配置框中填入以下JSON,指定只运行新增任务:
{ "task_ids": ["你的新增任务ID"], "ignore_task_deps": true }- 逻辑执行日期选择一个该DAG已经跑完的历史日期,点击触发即可,整个过程只会运行你指定的新任务,不会重跑其他已有任务。
创建空DagRun解锁UI操作权限(适配习惯点UI操作的场景)
如果就是想和操作老任务一样直接在Graph视图点选操作,可以先补一条对应历史日期的DagRun记录:- 进入顶部菜单栏「Browse」->「DAG Runs」页面
- 点击右上角新增按钮,选择对应DAG,逻辑日期选已跑完的历史日期,运行状态设为
success后保存 - 回到DAG的Graph视图刷新,新增任务就会从不可点击的状态变为可交互状态,直接点选清除/运行即可单独触发,其他任务因为已经是成功状态不会被重跑。
已有任务的操作菜单:
新任务的鼠标悬停提示:
内容的提问来源于stack exchange,提问作者Rob Teeuwen
相关产品推荐
相关产品推荐

