Jenkins的/quietDown接口能否仅暂停单个Job不影响其他任务
Jenkins
/quietDown 接口能力及单任务暂停方案 /quietDown 接口不支持仅暂停单个任务。这个接口的作用是触发Jenkins全局静默:启动后整个实例不会再启动队列中等待的任何新任务,仅保留已在运行的任务执行到结束,属于实例级别的全局操作,完全无法做到只暂停单个任务、不影响其他任务运行的效果。
匹配需求的实现方法
要实现「特定Job失败后暂停自身调度、修复后优先重跑、保证同Job不同参数构建执行顺序」的诉求,不需要用全局静默接口,按下面的方式操作即可:
- 给目标Job开启失败阻塞配置:在Job配置页打开「构建失败时阻塞后续同Job构建」的开关,配置生效后,只要这个Job某次构建执行失败,后续所有触发的该Job参数化构建都会卡在该Job自身的等待队列中,不会占用执行节点,也完全不会干扰实例上其他Job的正常调度运行。
- 问题排查修复完成后,直接点击失败构建记录的「重新构建」按钮即可,这次重跑会自动排在该Job等待队列的最头部优先执行,等这次重跑跑通后,之前排队的同Job其他参数构建会按照原始触发顺序依次执行,天然保证执行顺序。
- 如果需要通过API自动化实现,不要调用全局
/quietDown,需要暂停单任务时直接调用该Job对应的禁用接口:/job/<你的目标Job名称>/disable,调用后只有这个Job会被暂停调度,其余Job完全不受影响;问题修复后调用/job/<你的目标Job名称>/enable接口恢复即可,恢复后队列中积压的该Job构建会按原有排队顺序执行,如果需要将指定重跑任务调整到队首,调用重跑接口时传入队列优先级参数即可实现。
提示:单任务控制场景下误用全局
/quietDown接口会阻塞整个实例的所有新任务调度,会影响全实例所有构建任务的正常运行,不建议在这类场景使用。
内容的提问来源于stack exchange,提问作者somya
相关产品推荐
相关产品推荐

