流参考的Mule循环以非常奇怪的顺序运行

时间:2014-01-23 01:44:55

标签: mule mule-studio

我有一个循环,按顺序运行三个流引用。至少那是计划。在调试器中运行,处理按以下意外顺序进行:

  • 第一个流程参考(A)
  • 第二流程-ref(B)
  • 流程A的第一个组成部分
  • 第三流程-ref(C)
  • 流程B的第一部分
  • 流程A的第二部分
  • 流程C的第一个组成部分
  • 流程B的第二部分
  • 流程A的第三个组成部分 ......现在事情爆发了(在流程C的第1个),因为有效载荷不是预期的

我将处理策略从隐式更改为'同步',没有明显的变化。

发生了什么事?

    <flow name="Loop_until_successfull" doc:name="Loop_until_successfull" processingStrategy="synchronous">
        <flow-ref name="A" doc:name="Go to A"></flow-ref>
        <flow-ref name="B" doc:name="Go to B"></flow-ref>
        <flow-ref name="C" doc:name="Go to C"></flow-ref>
    </flow>

1 个答案:

答案 0 :(得分:2)

将“Loop_until_successful”流更改为“同步”只会确保同步处理对“Loop_until_successful”的调用,而不一定是由它调用的任何其他流。您需要更改“Loop_until_successful”调用的每个流,以便同步处理,以确保在调用下一个流之前从每次调用中获得响应。如果你这样做,那么Loop_until_successful(我现在打电话给L.U.S)调用A,等待响应,然后调用B,等待响应,然后调用C.现在配置它的方式,L.U.S。调用A然后使用它具有的有效负载立即移动到B,而不是等待来自A的响应。