2016-08-09 14 views
2

何らかの状態でCamel Loopを終了したい。私はexitFromLoop方法でCamelLoopIndexとCamelLoopSizeを変更しようとした Apache Camelループから抜け出す

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

キャメル2.15

を使用していますが、私のために働いていませんでした。

たとえば、choice/whenを使用して、これに代わる方法はありますか?

答えて

3

Camel 2.17以降を使用すると、モード中にループが発生します。

は、マニュアルを参照してください:http://camel.apache.org/loop

述語/偽nullまたはゼロに評価されるまで、ループはwhileループのように実行します。

述語としては、自動減算カウンタではないので、そのようなwhileループin java。

+0

ありがとうクラウス。私はヒューズ6.2を使用しています、それはキャメル2.15を使用しています。 Camel 2.15には何か別の選択肢がありますか? –

+1

代わりにダイナミックルータEIPを使用することもできます。ループの後でルーティングを行う必要がない場合は、交換をマークして停止することができます –

0

最大2.16ラクダする(そして同様に2.17で)あなたは<ラクダを使用することができます。stop /> <ラクダでの声明:いくつかの任意にループカウンタを設定するループ>、および:> <ラクダの内部ブロック上限。

ループには、条件付きでルートを停止できるJavaプロセッサが含まれている可能性があります。exchange.setProperty(Exchange.ROUTE_STOP、Boolean.TRUE);

関連する問題