我知道Splitter是mule中的异步循环。
我想在一些条件下打破它。有没有办法做到这一点?
或
可以使用For Each组件来完成吗?我应该拖动哪个组件来中断循环?
我使用xpath来拆分xml循环。
发布于 2014-09-19 04:15:57
发布于 2016-06-03 19:16:35
我也有同样的问题。当条件为真时,我想要中断的for-each循环(流程非常复杂,但简而言之……)
我不认为生成异常是一个好主意。我已经达到的最好的方法是在循环开始时进行for-each和过滤表达式。
示例:
<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会继续处理。
https://stackoverflow.com/questions/25898600
复制相似问题