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

如何通过脚本在Jenkins中添加多个构建任务至队列?UUID方案无效

解决Jenkins仅允许一个运行中任务和一个排队任务的问题

你的问题核心是Jenkins的任务并发或队列配置限制导致的,和添加的随机UUID参数无关,以下是具体排查和解决步骤:

1. 开启任务的并发构建权限

进入目标Jenkins任务的配置页面:

  • 找到高级项目选项(或构建触发器附近的配置项),勾选允许并发构建(Allow concurrent builds)
  • 保存配置后,再次用脚本触发任务,即可支持多任务排队或并发运行

2. 调整全局队列的最大限制

进入Manage Jenkins -> Configure System:

  • 定位到Queue(队列)配置区域,查看Maximum number of buildable items(可构建项目的最大数量)
  • 如果该值设为1,会强制限制仅1个排队任务,将其改为更大数值(比如10)或留空(无限制),保存后重新测试

3. 关闭参数化构建的重复限制

进入任务配置的参数化构建过程:

  • 检查是否勾选了Do not allow concurrent builds if the same parameters are used(参数相同时禁止并发构建)
  • 即使生成了随机UUID,也要确保该选项未被勾选;同时可以在Python脚本中打印UUID,验证每次生成的参数确实唯一

4. 验证API触发的正确性

如果以上配置都没问题,尝试用标准Jenkins API触发命令(规避插件可能的限制):

# 先获取CSRF crumb(避免触发失败)
CRUMB=$(curl -s 'http://[jenkins-url]/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)')
# 触发构建,生成随机UUID作为id参数
curl -X POST -H "$CRUMB" "http://[jenkins-url]/job/[folder]/job/[job-name]/buildWithParameters?token=[token]&user=[username]&branch=[branch]&id=$(uuidgen | tr -d '-')"

多次执行该命令,测试是否能生成多个排队任务

额外注意事项

  • 如果Jenkins节点只有1个执行器,同一时间只能运行1个任务,但排队任务数量不受此限制
  • 检查是否安装了Throttle Concurrent Builds这类限制并发的插件,如有则需调整插件配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 11:11:20