2017-10-30 7 views
0

IハメApacheのラクダのルートのように定義された:並列プロセス

from("timer:name?period=3000&fixedRate=true") 
      .process(myDbProcessor); 

myDbProcessorは、プロセッサインタフェースを実装しています。単にdbからデータを取得し、HTTP Post要求を実行するだけです。 良いですが、私たちはDB内に多くのデータを持っており、私たちの性能を改善するためにはアプリケーションの新しいインスタンスを開始しなければなりません。

私はmyDbProcessorを別のスレッドで並列に動作させたいと考えています。私は、マルチスレッドと並列myDbProcessorを使用する最も簡単で簡単な方法は何かアドバイスが必要ですか?

答えて

0

multicastたとえば、parallelProcessing=trueとカスタムonPrepareRefを使用してワークロードを分割できます。同じターゲットルートへのマルチキャスト。

とにかく、まずコードをリファクタリングする必要があります。キャメルはGod Objectsと一緒に使うのではなく、pipelinesと一緒に使用することを意図しています。処理の各段階(例えば、開始、データのフェッチ、HTTPポスト、結果の処理、次のレコードへのループ)は、独自のプロセッサーまたはルートで実装する必要があります。
あなたはより良いモジュール性を実現し、すべてEIP patternsを活用することができます。

関連する問題