メッセージをキューからデキューし、それを処理のために Bean に送信してから、メッセージを別のキューにエンキューする Camel ルートがあります。
2 番目のキューで「重複メッセージ」を排除しようとしています。Camel には、2 番目のキューに送信される前にメッセージを重複排除するように構成できるエンドポイント、プロセッサ、EIP などがありますか?
例:
<route id="myRoute">
<from uri="{{queue-1-uri}}" />
<to uri="bean:myBean?method=process" />
<!-- How to dedupe right here??? -->
<to uri="{{queue-2-uri}}" />
</route>
更新:おそらく次のようなもの:
<route id="myRoute">
<from uri="{{queue-1-uri}}" />
<to uri="bean:myBean?method=process" />
<filter>
<method>what goes here???</method>
<to uri="{{queue-2-uri}}" />
</filter>
</route>
Ralf の提案に従って、内部の Bean を参照し<method></method>
、キャッシュを使用してメッセージをメモリに保持することができました。
この新しい Bean が呼び出されFilterBean
、そのdedupe()
上にメソッドがあったとします。どうすればそれを Spring XML に結び付けることができますか? また、Bean がルート内から呼び出されるために実装する必要があるクラス/インターフェースは何ですか?