以每周一个节点,记录知识点。
2024-09-23~29
Jenkins Build Job 调度时间很长
当我们使用 Remote Access API 来并发的构建任务时,会发现调度时间会变长,如下面
This run spent:
9 sec waiting;
3 min 39 sec build duration;
3 min 48 sec total from scheduled to completion.
但是我们在 jenkins
页面上 build job 就发现这个时间很快。
这是为什么?如果不是构建器不足的情况下,那应该是安静期的设置导致的。
安静期 Quiet Period
注意,这个只适用于并发构建的通用性job,不适合那些依次任务构建的。
当这个选项设置为非零值时,新触发的构建将被添加到队列中,但 Jenkins 会在指定的时间(以秒为单位)后才开始实际构建。
例如,如果你的构建时间较长,你可能不希望在短时间内的多次源代码提交触发多个构建。启用安静期功能后,Jenkins 不会在发现第一个提交后立刻开始构建,而是会等待一段时间,给开发者机会继续推送更多提交,这些提交会在构建开始时一起包含进去。这样可以减少队列长度,使开发者更快获得提交反馈,同时减轻 Jenkins 系统的负载。
如果在一个构建正在队列中等待其安静期结束时,又有新的构建触发,安静期不会重置。新触发的构建不会被添加到队列中,除非该项目是参数化的,并且新构建的参数与队列中已有构建的参数不同。
设置静安静期的方式
-
- 通过接口上传递
delay
参数curl -X POST http://${JENKINS_HOTS}:${JENKINS_PORT}/job/${JOB_NAME}/build \ --user ${USER}:${PASSWORD} \ --data-urlencode json='{"parameter": [{"name":"delay", "value":"0sec"}]}'
- 通过接口上传递
-
- 在
jenkins
job
中设置pipeline { options { // 安静周期 quietPeriod(0) } }
- 在
-
- 在 jenkins 系统页面中设置
https://${JENKINS_HOTS}:${JENKINS_PORT}/manage/configure
Quiet period 设置项 - 从源代码出发,Jenkins 任务排队时间过长问题的解决过程
- Jenkins api too slow
- Quiet Period Feature