在Ant中使用列表并行作业

问题描述:

我试图在Ant上运行并行任务。
用户提供服务器列表(-Drhosts="rhost1,rhost2,..."),系统应每次仅使用不同的主机启动同一个目标。
<ac:for><ac:foreach>只支持<sequential>,不<parallel>在Ant中使用列表并行作业

任何想法?

它通过指定一个属性来支持并行运行。蚂蚁的contrib的<for>任务

参数:

平行
如果为真,则嵌套的所有迭代都会并行执行。默认为false,这将强制顺序执行迭代。调用者应确保并行执行是安全的。

threadCount
并行执行时允许的最大线程数。

所以,如果你可以设置parallel="true"。请注意,与嵌套的<sequential>元素无关,因为<sequential>内的任务仍按顺序执行;通过设置parallel参数,可以告诉<for>任务同时执行多个<sequential> - 多少个?它取决于列表中元素的数量以及threadCount的值。

请检查

http://ant-contrib.sourceforge.net/tasks/tasks/for.html

看到所有的参数。


而对于<foreach>任务,它执行指定的目标在列表中的每个元素,或者在嵌套集中每个文件。您还可以使用parallel属性使执行并行。

检查

http://ant-contrib.sourceforge.net/tasks/tasks/foreach.html

+0

这是很容易....我想RTFM是在地方:) – Assaf

+0

@ user1633264至少阅读任务的属性表。另外,如果这是帮助您解决问题的答案,请单击接受。 – coolcfan

这里是代码的样片:

<for list="some_list" param="list_param" delimiter="any_delimiter" parallel="true"> 
    <sequential> 
     ...   
    </sequential> 
</for>