【问题标题】:Mule processing strategies - call async private flow from synchronous flowMule 处理策略——从同步流中调用异步私有流
【发布时间】:2014-03-26 18:08:08
【问题描述】:

我正在尝试从主同步流中调用异步私有流,如下所示:

<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>

但它不起作用并导致以下异常:

无法异步处理同步事件。消息负载类型:字符串 (org.mule.api.MessagingException)

这是怎么回事?

更新

如果我将异步流引用包装在 &lt;async&gt; 标签中,它会起作用。但为什么我需要这样做?是bug吗?

【问题讨论】:

    标签: mule


    【解决方案1】:

    这是一项功能。

    您处于显式同步流中并尝试调用显式异步流。来自异步流的响应永远不会返回到调用者流。因此,有可能丢失消息。因此,Mule 会强制您明确并使用 &lt;async&gt; 标签进行包装。

    【讨论】:

    • FWW 我将其添加为评论,因为我不喜欢自我推销,但这种行为在 Mule in Action 第二版的第 2 章中有详细说明。
    猜你喜欢
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2015-11-18
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多