2017-08-08 11 views
0

私は単一のラクダバンドルに複数のルートを配備していますが、達成しようとしているのは、単一のルートが実行を開始すると、開始されたルートが実行されるまで、実行が終了しました。キャメルルートを同期させる

私のルートを含む全体のcamelContextをシングルスレッドにすることは可能ですが、ここではパフォーマンス上の欠点があります。

誰かが同様のユースケースを持ち、これを解決する最良の方法はありますか? OSGi Blueprint DSLを使用しているので、どのような例も歓迎されます。

答えて

0

CamelのControl Busは、他のルートを選択的に制御する必要がある場合(たとえば、開始と停止など)に使用できます。

まず、アプリケーションの起動時に実行するルートを防ぐ必要があります。

<to uri="controlbus:route?routeId=foo&amp;action=start"/> 

次の操作も実行できます。あなたは、単に、ものをやった後、別のルートを開始したいあなたの走行経路におけるポイントで次に

<route id="foo" autoStartup="false"> 
    <from uri="activemq:queue:special"/> 
    <to uri="file://backup"/> 
</route> 

:これはあなたのルート定義で偽=自動起動で達成されますCamel documentation hereで説明されているルートの起動(およびシャットダウン)を指示します。

関連する問題