2014-02-24 79 views
4

调用异步私人流动我想打电话从主同步流动,像这样的异步私人流量:骡子处理策略 - 从同步流

<flow name="main" doc:name="main" processingStrategy="synchronous"> 
    <poll frequency="10000"> 
     <set-payload value="main"></set-payload> 
    </poll> 

    <flow-ref name="async-private" /> 
    <flow-ref name="private" /> 

</flow> 
<flow name="private" processingStrategy="synchronous"> 
    <logger level="ERROR" message="sync" /> 
</flow> 

<flow name="async-private" processingStrategy="asynchronous"> 
    <logger level="ERROR" message="async" /> 
</flow> 

不过,这并不在以下例外的工作和成果:

无法异步处理同步事件。消息有效负载的类型为:String(org.mule.api.MessagingException)

这是怎么回事?

UPDATE

,如果我换了异步流程,裁判在<async>标记它的工作原理。但为什么我需要这样做?这是一个错误吗?

回答

9

这是一项功能。

您处于显式同步流程中,并尝试调用显式异步流程。来自异步流程的响应将永远不会回到调用者流程。因此有可能丢失信息。因此,骡强迫你明确,并用<async>标签包装。

+2

FWW我将此作为评论加入,因为我不喜欢自我推销,但这种行为在第二版Mule in Action中详细介绍。 –

+0

非常好,谢谢。 –