【发布时间】:2016-06-03 19:16:34
【问题描述】:
我知道Splitter是mule中的异步循环。
我想用一些条件打破它。有什么办法吗?
或
可以使用For Each 组件来完成吗?我应该拖动什么组件来打破循环?
我正在使用xpath 来拆分 xml 以进行循环。
【问题讨论】:
标签: mule
我知道Splitter是mule中的异步循环。
我想用一些条件打破它。有什么办法吗?
或
可以使用For Each 组件来完成吗?我应该拖动什么组件来打破循环?
我正在使用xpath 来拆分 xml 以进行循环。
【问题讨论】:
标签: mule
我也有同样的问题。当条件为真时我想打破的 for-each 循环(流程相当复杂,但简而言之......)
我认为生成异常不是一个好主意。我已经达到的最佳方法是在循环开始时使用 for-each 和 filter 表达式。
例子:
<flow name="break-foreach" processingStrategy="Queued_Asynchronous_Processing_Strategy">
<http:listener config-ref="HTTP_Sat" path="/loop " allowedMethods="GET" doc:name="HTTP"/>
<set-payload value="#[[0,1,2,3,4]]" doc:name="Set Payload"/>
<foreach collection="payload" doc:name="For Each">
<logger message="Iteration before filter: #[payload]" level="INFO" doc:name="Logger"/>
<expression-filter expression="#[payload<3]" doc:name="Expression"/>
<logger message="Iteration after filter: #[payload]" level="INFO" doc:name="Logger"/>
</foreach>
</flow>
控制台显示如下:
Iteration before filter: 0
Iteration after filter: 0
Iteration before filter: 1
Iteration after filter: 1
Iteration before filter: 2
Iteration after filter: 2
Iteration before filter: 3
Iteration before filter: 4
当然,这不是中断,因为 for-each 一直在处理。
【讨论】: