蚂蚁的生产者-消费者模式



这不是严格意义上的生产者-消费者模式,但这足以描述我的问题。

我有一个需要由N个进程消耗的项目列表。我想在物品空闲时立即为其分配流程号,而不是对订单进行硬编码。

例如,要运行测试,可以调用:

<runTest target="t1">
    <property name="instance" value="i1" />
</runTest>

如果我手头有i1i3,并且要运行t1t10测试,我可以执行:

<parallel>
    <runTest target="t1">
        <property name="instance" value="i1" />
    </runTest>
    <runTest target="t2">
        <property name="instance" value="i2" />
    </runTest>
    <runTest target="t3">
        <property name="instance" value="i3" />
    </runTest>
<parallel>

然后我会等待它完成,并对不同的目标运行相同的操作。我也可以循环整个代码来减少繁琐。但是,有没有可能在完成前一个目标后立即获取目标并将其提供给实例?

也许这个问题在ANT之外更容易解决?

我建议您考虑像Jenkins这样的自动化构建引擎。它能够将构建作业委托给工作进程池,这些工作进程可以在本地运行,也可以在"从属"节点上运行。Jenkins还有许多流程工作流插件,可以根据其他作业的成功或失败来运行作业。这就是持续集成/交付管道的实施方式。

希望能有所帮助。

由于并行任务和for任务太原始,无法处理这种类型的需求,如果有人一心想使用Ant,我的观点是应该编写一个新的Ant任务(此处为教程)来处理这种行为。

我还意识到,我们可以使用"脚本"任务在Ruby或Javascript中编写一小段代码,以实现同样的目标。

相关内容

  • 没有找到相关文章

最新更新