0

私は(再び;-)JPA関連の問題で立ち往生しており、ここの誰かが助けてくれることを願っています(Camel in Actionはできませんでした...):

namedQuery を使用して JPA エンドポイントから消費します。消費されたエントリを削除できないため、「consumeDelete=false」オプションを使用しています。

しかし、同じエントリを複数回読み取らないようにするにはどうすればよいでしょうか? 「@consumed」アノテーションは知っていますが、元のデータベース エントリを変更/更新することは許可されていないため、エントリを「消費済み」としてマークする方法がわかりません...

何か案は?

ありがとう、M

4

2 に答える 2

1

データベース内のデータを変更して、レコードを既に消費したことを反映できない場合は、この情報を別の場所に「保存」する必要があります。

べき等コンシューマ EIP パターン http://camel.apache.org/idempotent-consumer.htmlを使用できます。

次に、メモリ/ファイル/別のデータベース/テーブルを使用して、既に消費されたメッセージの ID を保存し、それをべき等コンシューマー パターンで使用する必要があります。

于 2012-11-23T07:38:39.413 に答える