Filter mule过滤器不停止流处理,选择结束标记后拾取

Filter mule过滤器不停止流处理,选择结束标记后拾取,filter,mule,Filter,Mule,在这个流中,我已经验证了当过滤器返回“false”时,流仍然会继续。但有效载荷略有不同。我需要完全停止这些消息 <foreach doc:name="For Each"> <choice doc:name="Choice"> when expression="#[payload['event'] contains 'delete' ]"> <!-- this path is u

在这个流中,我已经验证了当过滤器返回“false”时,流仍然会继续。但有效载荷略有不同。我需要完全停止这些消息

<foreach doc:name="For Each"> <choice doc:name="Choice"> when expression="#[payload['event'] contains 'delete' ]"> <!-- this path is unrelated to this question --> </when> <otherwise> <flow-ref name="getMessages" doc:name="FlowToGetMessages"/> <!-- this (below) will extract the single row value (a Map) from the array returned from above flow --> <collection-splitter doc:name="Collection Splitter"/> <expression-filter expression="#[payload['activity'] != null && payload['activity'] != "" ]" doc:name="Block Empty Rows"/> <custom-filter class="package.BlockNullAnnouncementEvents" doc:name="Block null"/> </otherwise> </choice> ... 当表达式=“#[payload['event']包含“delete']”时> ... 下一个处理器(在选择之后)将 A) 如果消息通过筛选器测试BlockNullAnnouncementEvents或 B) 如果存在空值且筛选器未通过相同测试,则为具有一个值的数组


在我看来,如果消息未通过筛选测试,则调用流getMessages的结果将返回到for each的顶部,并将其传递到包含筛选器的choice分支之后的流的下一部分。

执行后,foreach将恢复原始消息,如前所述


如果要停止执行,应使用,并将抛出未接受配置为true

谢谢。。。“Throw On unaccept to true”是我需要知道的。嗨@genjosanzo,我有一个流看起来几乎和op的流一样,但即使有message filter和Throw On unaccept,我也可以看到流在message filter抛出异常后仍在运行,如果我在该块后放置一个记录器,我可以看到正在记录的有效负载。