退出 Apache Camel 循环

Exit from Apache Camel loop

我想在某些情况下退出 Camel Loop。我正在使用 Camel 2.15

 .loop(simple("${exchangeProperty.loopCount}"))
   .to("bean:xxx?method=exitFromLoop")
 .end()

我尝试在 exitFromLoop 方法中更改 CamelLoopIndex 和 CamelLoopSize,但对我不起作用。

是否有其他替代方法,例如使用 choice/when?

如果您使用 Camel 2.17 及更高版本,则会出现循环 while 模式。

查看文档:http://camel.apache.org/loop

然后循环像 while 循环一样运行,直到谓词的计算结果为 false/null 或零。

作为谓词,它不会自动递减计数器,所以它就像 java 中的 while 循环。

直到 camel 2.16(以及 2.17),您可以在 内的 块中使用 语句,并将循环计数器设置为一些任意上限。

或者您的循环可能包含一个 java 处理器,它可以有条件地停止路由:exchange.setProperty(Exchange.ROUTE_STOP, Boolean.TRUE);