在大多数Jenkins的例子中,SCM轮询值被指定为* / 15 * * * *,即。每隔15分钟轮询一次SCM。当你有数百个工作时,这很好,但如果你有数千个工作就没有,因为它会在一小时后的15,30,45和0分钟内向SCM(本例中为Subversion)服务器发出数千个请求。
有没有办法在Jenkins中随机化轮询值以避免上述情况?
在Jenkins主配置屏幕上,有一个值“最大并发轮询数”。是否应该设置(和什么值)以避免上述情况?
答案 0 :(得分:29)
使用H而不是*,Jenkins将随机分发轮询。请注意,目前还没有找到一个不同于每小时/每天/等的频率的良好语法,所以
H * * * *
将以预先确定的随机分钟每小时轮询一次。
H H * * *
每天会以预先确定的随机时间和分钟进行一次投票
H H H * *
每周投票一次
0 H * * *
将按小时进行投票,但每天在预先确定的随机时间进行一次投票。
请记住,您可以使用多个cron行,并且任何匹配都是匹配的,因此在确定了小时频率的良好语法之后,您可以更接近(平均而言)
H * * * * H * * * * H * * * * H * * * * H * * * * H * * * *
投票之间平均会给你15分钟(是的,每小时会有6次投票,但这很可能是每个季度至少有一次投票会下降)
如果您对在一小时内分发语法有很好的建议,请回复此主题:
https://groups.google.com/forum/?fromgroups#!jenkinsci-users/VghEjfygWuw/PuIG1o7u1GQJ%5B1-25%5D
Jenkins 1.510和更新版本包含new syntax以允许在一小时内指定发行版
答案 1 :(得分:2)
如果将并行轮询的最大数量设置为1到3之间的某个值,则轮询请求将简单地排队并连续处理(或最多并行处理3个)。
鉴于SVN轮询涉及的所有内容实际上都是
svn info branch-url
它们都应该很快完成,但至少你会限制并行请求。
答案 2 :(得分:1)
@Stephen Connolly的解决方案可能是一个很好的解决方案。
如果您确实需要担心数千个工作,请考虑根据工作名称的某些部分设置时间(假设您的工作名称合理分配)。
例如,如果您的作业以“B”开头,请将时间设置为* / 2。如果它以'C'开头,则将其设置为* / 3等('A'需要的不是1)。
这不是一个了不起的解决方案,但如果您真的想要管理那么多工作,那么在您找到更好的解决方案之前,这可能是一种解决方法。
答案 3 :(得分:0)
H H H * *
我认为以上每月不会每周进行一次民意调查