在mule中并发执行流程

时间:2014-03-13 22:48:23

标签: mule

我正在寻找一种模式,可以同时调用两个不同的Web服务,而不是等待它们在一个mule流中完成它们的处理。此外,如果这两个服务调用中的任何一个失败,那么我想继续而不是失败。

我看到mule中提供了fork和join模式。我的要求在最后没有连接的意义上不同,我也不想等待服务调用完成,因为我的服务调用本质上是异步的(例如,调用service1将消息放入队列AND呼叫单向服务2)。

我在下面有一个高级示例,我想解雇Service1& Service2同时调用。在启动这两个调用的那一刻,我希望控件返回主流并开始执行,依此类推。

<flow>
 <async><Service1 call></async>
 <async><Service2 call></async>
 <Transformer>
 <Logger>
</flow>

2 个答案:

答案 0 :(得分:0)

您描述的行为正是您的流程示例所做的。标签内部的服务调用将是异步的,流程将继续使用您的Transformer,而无需等待服务调用完成。

答案 1 :(得分:0)

我想同时执行所有流程就是使用scatter-gather
scatter-gather内,您可以使用异步块,以便在任何流失败时不会影响它 该组件可从Mule 3.5获得,以下是参考: - https://developer.mulesoft.com/docs/display/current/Scatter-Gather