构建服务器轮询与事件驱动的构建

时间:2010-06-16 19:24:52

标签: svn build-process hudson build-server

为什么构建服务器轮询更改而不是SVN触发一个告诉构建服务器启动构建的事件(或提交后步骤)?轮询更改似乎非常低效,特别是当项目数量增加且轮询周期设置为非常低的值(例如,30秒)时。

3 个答案:

答案 0 :(得分:1)

Hudson还支持通过提交后触发器构建。请参阅:
http://wiki.hudson-ci.org/display/HUDSON/Subversion+Plugin

提交后挂钩

  

Hudson可以调查Subversion   存储库的变化,同时   这是合理有效的,这可以   每次只发生一次,   所以你可能还是要等一下   在哈德森发现变化之前一分钟。

     

要减少此延迟,您可以设置一个   post commit hook所以Subversion   存储库可以随时通知Hudson   对该存储库进行了更改。   为此,请添加以下脚本   在你的提交后文件中

。 。

(有Linux / Windows的例子。)

答案 1 :(得分:1)

  

轮询更改似乎非常低效,特别是当项目数量增加且轮询周期设置为非常低的值(例如,30秒)时。

轮询效率低下,根本不会扩展。如果您的VCS支持提交后挂钩,您应该更喜欢这种机制。 Hudson公开了一个URL来触发构建,从后提交脚本中获取它(并配置适当的静默期)。

答案 2 :(得分:-2)

通常,构建计划在指定的时间间隔启动,例如每天凌晨3点。可以放置一些逻辑来查看是否有更改然后只构建项目,但通常他们不会检查和构建每天(每晚构建)

至于你的建议是好的,我会说在每次提交时开始构建都不可行。很多时候,开发人员不会一次性提交更改并且更喜欢增量签入。此外,它还让您高枕无忧,知道构建过程何时启动,以便您在错误提交时至少有机会整理一些东西。根据您的建议,错误的提交会导致错误的构建。