将 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分钟的时间,首页会向服务器轮询一次,以便获得最新的数据。

每 10 秒轮询一次

为啥即使没有 SVN 更改,Jenkins 也会触发 IVY 构建?

(Win/C#/.Net) Applet 需要每隔一小时轮询一次——关于最佳方法的建议?

每 10 分钟更新一次时,FCM 是不是仍然比轮询更好? [关闭]

限制函数的数量以防止垃圾邮件