2009-12-16 162 views
0

这是其在build.xml中定义使用蚂蚁


目标名称= “重启”

propertycopy名称= “remote.host” 从=“部署重启目标代码反弹多个服务器。 $ {target.env} .host。$ {remote.id}“

propertycopy name =”remote.port“from =”deploy。$ {target.env} .port。$ {remote.id}“

sshexec trust="true" 
    host="${remote.host}" 
    port="${remote.port}" 
    username="${scm.user}" 
    keyfile="${scm.user.key}" 
    command="sudo /usr/local/bin/bounce_jboss" 

目标


服务器信息在build.properties中定义。

上面的代码工作正常,但重启过程是非常晚BCAS其停止启动服务器之一,后来其停止启动另一台服务器,

是否有一个地方,我可以并行地重新启动这两个服务器有一个办法45秒的时间范围。

回答

1

您是否调查过蚂蚁Parallel task?您应该能够使用它简单地平行重新启动。

例如

<parallel> 
    <!-- first server reboot --> 
    <ssh ...> 
    <!-- second server reboot --> 
    <ssh ...> 
</parallel> 
+0

是啊,我试过,即使这样 \t <睡眠秒= “45”/> Angrezy 2009-12-16 21:26:22

+0

将平行其中包含的任何内容。它在执行Ant脚本的其余部分时不会在并行线程中运行某些内容。 – 2009-12-16 21:29:28

+0

所以(暂时)两个ssh都需要运行任务 – 2009-12-16 21:30:43

0

并行任务将为您工作。又如:

<target name="restart" ... > 
    <parallel> 
     <!-- first server reboot call --> 
     <!-- second server reboot call --> 
    </parallel> 
</target> 

从命令行:

>ant restart 

不执行 “蚁重启” 的两倍。只调用一次,你的服务器应该只重启一次。

+0

这是怎么了我加入: \t Angrezy 2009-12-17 14:26:31

+0

实际上build是在做一个并行的重启,但是由于一些集群问题,我想限制我的重启,在第一次服务器重启和第二次服务器重启之间给出30到45秒的间隔。 – Angrezy 2009-12-17 15:40:02