我想在某种情况下退出Camel Loop。我正在使用Camel 2.15
.loop(simple("${exchangeProperty.loopCount}"))
.to("bean:xxx?method=exitFromLoop")
.end()
我尝试在exitFromLoop方法中更改CamelLoopIndex和CamelLoopSize,但对我没有用。
有没有替代方法,例如使用choice / when?
答案 0 :(得分:3)
如果你使用Camel 2.17,那么在模式下有一个循环。
请参阅文档:http://camel.apache.org/loop
然后循环像while循环一样运行,直到谓词计算为false / null或为零。
作为一个谓词,它不会自动递减计数器,因此它就像java中的while循环一样。
答案 1 :(得分:0)
直到骆驼2.16(以及2.17中)你可以使用< camel:stop />声明在< camel:when>阻止< camel:loop>内部,并将循环计数器设置为某个任意上限。
或者你的循环可能包含一个java处理器,它可以有条件地停止路由:exchange.setProperty(Exchange.ROUTE_STOP,Boolean.TRUE);