我的mule配置中有以下流程。
<flow name="SimpleTest" processingStrategy="asynchronous">
<http:listener path="/orders/{id}" config-ref="myRequestConfig"
allowedMethods="GET" />
<set-payload value="SUCCESS" />
<flow-ref name="subFlowTest" />
<logger level="ERROR" message="value is : after subflow" />
</flow>
<sub-flow name="subFlowTest">
<scripting:component doc:name="sleep">
<scripting:script engine="groovy">
<scripting:text>
java.lang.Thread.sleep(5000);
</scripting:text>
</scripting:script>
</scripting:component>
</sub-flow>
它使Unable能够异步处理同步事件错误。我想异步调用子流,所以如果我的父流是异步的,子流将自动变为异步,正确吗?那我为什么会收到这个错误?
答案 0 :(得分:2)
您可以使用异步消息处理器异步调用子流。
<async doc:name="Async">
<flow-ref name="subFlowTest" doc:name="Call Sub Flow"/>
</async>
答案 1 :(得分:0)
HTTP端点通过它自动同步调用此流,因此您的流策略与其入站端点之间存在冲突。根据定义,HTTP是同步的。
您的问题取决于您对HTTP的理解。
希望它有所帮助。
/ T
答案 2 :(得分:0)
subflow
语义更像是宏扩展而不是函数调用。您不调用子流,而是使用子流将消息处理器提取到不同的xml结构中以提高可读性。在运行时,它与复制子流的所有消息处理器并将它们放入流中的情况相同。
为什么要异步执行script
组件?