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

如何配置Jenkins实现三类作业的特定主机调度规则?能否用Throttle插件?

用Throttle Concurrent Build插件就能搞定你的作业调度需求!

先给你个肯定答案:完全可以用Throttle Concurrent Build插件实现你的三类作业调度规则,搭配一点Jenkins原生配置或者辅助插件就能完美适配。下面我给你拆解每类作业的具体配置步骤:

先做准备:给作业打标签

先给三类作业分别打上专属标签,方便后续分组限流:

  • 1类作业统一打标签 job-type-1
  • 2类作业统一打标签 job-type-2
  • 3类作业统一打标签 job-type-3

1类作业配置(任意数量并发、可与2类共存、禁3类节点)

进入1类作业的配置页面,找到「Throttle Concurrent Builds」选项并启用:

  • 选择「Throttle builds matching the specified label」,输入标签 job-type-1
  • 设置「Maximum concurrent builds per node」为 0(代表无限制,如果你想限制最多3个就填3)
  • 打开「Mutual Exclusion」模块,勾选「Exclude builds with these labels」,输入 job-type-3——这样只要节点上有3类作业在跑,1类作业就不会调度到这个节点上

2类作业配置(单节点仅1个、可与1类共存、禁3类节点)

同样进入2类作业的配置页面,启用Throttle插件:

  • 选择「Throttle builds matching the specified label」,输入标签 job-type-2
  • 设置「Maximum concurrent builds per node」为 1——确保单台主机上最多跑1个2类作业
  • 同样在「Mutual Exclusion」里勾选「Exclude builds with these labels」,输入 job-type-3——和1类作业一样,避开有3类作业的节点

3类作业配置(单节点仅1个、完全独占节点)

3类作业是核心的独占需求,配置如下:

  • 启用Throttle插件后,选择「Throttle builds matching the specified label」,输入标签 job-type-3
  • 设置「Maximum concurrent builds per node」为 1——保证单节点只有1个3类作业
  • 在「Mutual Exclusion」里勾选「Exclude builds with these labels」,输入 job-type-1,job-type-2——这样3类作业运行时,节点上绝对不会有1类或2类作业,反过来1、2类也没法在有3类的节点启动

备选方案:如果需要更严格的节点独占

要是你觉得Throttle的互斥标签不够稳妥,还可以搭配Lockable Resources插件:给每台主机创建一个专属的「独占资源」(比如命名为 node-<主机名>-exclusive),3类作业运行时自动锁定这个资源,而1类、2类作业只有在该资源未被锁定时才能调度到对应节点。这种方式更直观,适合对节点独占要求极高的场景。

总的来说,你的需求用Throttle Concurrent Build插件就能覆盖,配合标签和互斥规则完全能实现你要的调度逻辑。

内容的提问来源于stack exchange,提问作者Volodymyr Bezuglyy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:16:07