我正在寻找一种模式,可以同时调用两个不同的Web服务,而不是等待它们在一个mule流中完成它们的处理。此外,如果这两个服务调用中的任何一个失败,那么我想继续而不是失败。
我看到mule中提供了fork和join模式。我的要求在最后没有连接的意义上不同,我也不想等待服务调用完成,因为我的服务调用本质上是异步的(例如,调用service1将消息放入队列AND呼叫单向服务2)。
我在下面有一个高级示例,我想解雇Service1& Service2同时调用。在启动这两个调用的那一刻,我希望控件返回主流并开始执行,依此类推。
<flow>
<async><Service1 call></async>
<async><Service2 call></async>
<Transformer>
<Logger>
</flow>
答案 0 :(得分:0)
您描述的行为正是您的流程示例所做的。标签内部的服务调用将是异步的,流程将继续使用您的Transformer,而无需等待服务调用完成。
答案 1 :(得分:0)
我想同时执行所有流程就是使用scatter-gather
在scatter-gather
内,您可以使用异步块,以便在任何流失败时不会影响它
该组件可从Mule 3.5获得,以下是参考: - https://developer.mulesoft.com/docs/display/current/Scatter-Gather