将 Jenkins 配置为少于每分钟轮询一次
Posted
技术标签:
【中文标题】将 Jenkins 配置为少于每分钟轮询一次【英文标题】:Configure Jenkins to Poll less than every minute 【发布时间】:2013-05-09 13:34:44 【问题描述】:将 Jenkins 轮询间隔配置为:* * * * *
将每分钟轮询 SCM。
有没有办法将其配置为不到一分钟的轮询?例如每 30 秒一次?
【问题讨论】:
只是好奇...你为什么需要这个? 有时在同一分钟内提交了两个提交。詹金斯不会同时建造它们。它只会构建最新的提交。我想同时建造它们。 但是如果两个更改是在30秒内提交的,你的问题仍然没有解决。即使您可以每秒轮询一次,您仍然可能会在一秒钟内签入两个更改。 @Stuart_Whelan 的回答似乎是正确的......您需要以不同的方式处理此问题并让 SCM 触发您的构建,而不是轮询更改。 我已经在我的答案中添加了更多信息,因为我对这个问题有了更多的了解。 您可以在管道作业的配置下进行这样的配置 - 仅 1 分钟 ![Pipeline configuration](i.stack.imgur.com/ABdZX.png) 【参考方案1】:Jenkins 使用 Cron 语法进行轮询。由于 Cron 的粒度为 60 秒,因此不确定您能否达到 30 秒。
看看这个:How to get a unix script to run every 15 seconds?
【讨论】:
【参考方案2】:让您的 SCM 触发构建而不是轮询它。
您使用的是什么 SCM?
编辑:
您可以告诉 Jenkins 在签入更改后等待“x”秒,然后再开始构建。我有同样的问题,开发人员正在执行多次签入。
有两个选项可以配置此选项,系统范围选项或每个作业选项。
系统范围选项位于管理 -> 配置系统 -> 静默期。以秒为单位。
每个作业选项位于高级项目选项下,也称为静默期。
如果您将静默期设置为 90,Jenkins 将等到最后一次检测到签入后 90 秒,然后再开始构建。
【讨论】:
我正在使用 Perforce,但我不是 Perforce Web 服务器的管理员。是否可以使用 Jenkins Perforce 插件触发构建? 阅读 Wiki 以了解 preforce 插件,它看起来好像不支持事件库构建触发器。安静期可能是你最好的选择。 我不介意人们提供其他选项,但请记住,出于环境原因,有些人不能让 SCM 触发构建......只是说 轮询通常是糟糕的设计。对于使用 Git 和 GitHub 的任何人,您都可以通过 webhook 切换到在每次提交上构建。 Jenkins 有一个 GitHub Plugin 和 Pull Request builder plugin。【参考方案3】:我找到了解决方案,并在此解释:
Jenkins Perforce Plugin - multiple changelists in a single poll
感谢您的想法!
【讨论】:
以上是关于将 Jenkins 配置为少于每分钟轮询一次的主要内容,如果未能解决你的问题,请参考以下文章
使用PHP如何做到每隔5分钟的时间,首页会向服务器轮询一次,以便获得最新的数据。
为啥即使没有 SVN 更改,Jenkins 也会触发 IVY 构建?
(Win/C#/.Net) Applet 需要每隔一小时轮询一次——关于最佳方法的建议?