2

現在Apache Camelを使用しています

次の場合、集計がいつ完了したかを判断する方法がわかりません。

  • 多くの部分からなるメッセージから始めます
  • その後、メッセージは複数の部分に分割されます
  • これらのメッセージの一部はフィルターで除外されます
  • 残りのメッセージは変換されます
  • 次に、メッセージをグループ化して 1 つのメッセージに戻します。

入ってくるメッセージの数を知っています。フィルター処理をしなければ、アグリゲーターはそれだけの数のメッセージを待つことができます

ここに私のアイデアのいくつかがありますが、どれもあまり好きではありません

  • フィルターは、予想されるメッセージの数を示すメッセージをアグリゲーターに送信します
  • フィルターはフィルターではなく、フィルター処理されるすべてのメッセージをアグリゲーターに直接送信し、アグリゲーターはフィルターとして機能します
4

1 に答える 1

1

スプリッタのみを使用した合成メッセージ プロセッサの例を参照してください

フィルタを使用する場合、交換がフィルタリングされたかどうかにかかわらず、フィルタは交換にプロパティを設定します。次に、その情報を集約戦略で使用して、そのメッセージを単一の結果メッセージにマージするかどうかを知ることができます。

交換がフィルタリングされたかどうかを確認する

于 2014-06-07T04:49:25.810 に答える