Cruise control.NET集成队列?

时间:2009-04-06 05:39:14

标签: .net scripting

对于发表于中国的材料存在疑问 以下链接  “http://confluence.public.thoughtworks.org/display/CCNET/Integratio+Queues

告诉“CruiseControl.Net的默认行为是这样的 配置中定义的每个项目都有自己的集成 线程,从而允许不同命名的项目构建 同时进行。

但请注意,单个项目永远不会构建超过 曾经在同一时间。如果你强制在项目X上构建它 已经集成,强制构建请求被有效阻止 直到上一次集成完成。所以你也可以想到 这个每个项目都有自己专用的集成队列,其中 只有队列头部的项目当前正在建设中 最多只有一个待处理请求。“

但在我的情况下,这是非常矛盾的,因为我强迫我的构建 它打开我的IDE并启动集成和构建 约3分钟左右但是当我在执行之间强制我的构建 在我的webdash板上,我看到它再次打开另一个IDE并启动 建筑物是不可接受的。根据显示的链接 它应该排队等待第一个IDE执行完成 然后去第二个。

你可以提出解决这个问题的方法吗?

亲切的问候 麦迪

3 个答案:

答案 0 :(得分:0)

也许这是一个问题(来自CCNet文档,即使我不知道这个设置):

重复:规范如何处理队列中的重复请求。可能的值包括UseFirst,ApplyForceBuildsReplace和ApplyForceBuildsReAdd。

http://confluence.public.thoughtworks.org/display/CCNET/Queue+Configuration

答案 1 :(得分:0)

我们使用集成队列作为管道目的,以防您的项目具有依赖关系,并且您希望在订单中构建它们。

这是它的工作原理:

  ...
  <!-- Put all related projects in same Q, here MyProjectQ-->
  <!-- Set queuePriority, based on who-is-dependent-on-whom --> 
  <project queue="MyProjectQ" queuePriority="1">
    <name>MyProject.Main</name>
  </project>
  <project queue="MyProjectQ" queuePriority="2">
    <name>MyProject.Installer.All</name>
  </project>
  ...

HTH

答案 2 :(得分:0)

这是下面显示的ccnet.config文件 CruiseControl的&GT;

 <project name="VSAT" queue="Q1" queuePriority="1">
 <sourcecontrol type="filtered">
   <sourceControlProvider type="filesystem">
     <repositoryRoot>C:\MyProj</repositoryRoot>
     <autoGetSource>true</autoGetSource>
     <ignoreMissingRoot>false</ignoreMissingRoot>
   </sourceControlProvider>
 </sourcecontrol> 
 <triggers>
        <intervalTrigger name="continuous" seconds="240" buildCondition="IfModificationExists" />
 </triggers>
 <tasks>
   <nant> 
      <executable>C:\Nant-0.85\bin\NAnt.exe</executable>
  <buildFile>nant.build</buildFile>
   </nant>
 </tasks> 

 <!--<triggers>
   <intervalTrigger seconds="50" buildCondition="ForceBuild"/>
  </triggers>-->
  </project>
</cruisecontrol>

我的nant.build文件总是在看到任何修改时调用IDE。问题是它没有排队,即使我在ccnet.config文件中指定了???

由于 麦迪