2013-02-22 40 views

回答

1

奇怪的规定采取从下线的步骤,但我尊重它:)

香槟力 - 如果你想把奴隶拿出来,你可以从该奴隶上运行的批处理文件中杀死它(杀死java进程)。在批处理文件中使用taskkill(在命令行上运行taskkill /?查看使用情况),您应该使用start命令(请参阅start /?以查看使用情况)在作业中分叉。

另外,请看thisthis post。看起来像你的一个更好的控制类似的需要。

希望这会有所帮助。

+0

感谢您的想法。不是很优雅,但应该做的工作! – 2013-02-26 19:11:42

0

是否想让机器仅在命令提示符下脱机?否则,你可以使用groovy post build步骤来编写简单的脚本来让每台机器脱机。从命令提示符下,除非使用某些电源外壳实用程序,否则您将无法访问其他从属设备。

1

老问题,但这里有一些其他方法,我已经考虑过(并尝试过)。我们有一个工作来监视构建机器,并在从机脱机或磁盘空间不足时调用寻呼机负载。在我们的环境中强制使机器脱机是有问题的。

  1. 您可以更改机器上的标签,以便其他作业不再选择它,而不是删除从机(例如将其取消或使其脱机)。这可以用groovy来完成。 CAVEAT:标签更改似乎需要一段时间才能传播,因此机器仍可能被选中。

  2. 使用Conditional Build Step插件并在失败时使用groovy使机器脱机。注意:我还没有测试过这个时髦...它是旧的。

    manager.build.getBuiltOn().toComputer.setTemporarilyOffline(true) 
    
  3. ,而不是花机下线,你能有这样的作业运行永远(睡眠,睡眠,休眠) - 也不会是脱机状态,但将不提供任何不再做其他工作选择它。同时,它可以继续重试恢复。

  4. 还有一个Node Stalker插件,它允许下游作业作为上游作业在同一节点上运行。这样当发生故障时,您的下游工作可以进行清理。然而,有一个轻微的风险,即计划失败的机器的另一项工作首先进入。