134.4. マップキャッシュコンシューマー - from ("hazelcast-map:foo")
Hazelcast は、データグリッドでイベントリスナーを提供します。キャッシュが操作される場合に通知を受け取りたい場合は、マップコンシューマーを使用できます。4 つのイベントがあります: put、update、delete、および envict です。イベントタイプは、hazelcast.listener.action ヘッダー変数に格納されます。マップコンシューマーは、これらの変数内にいくつかの追加情報を提供します。
レスポンスメッセージ内のヘッダー変数:
| 名前 | タイプ | 説明 |
|---|---|---|
|
|
| イベントの時間 (ミリ秒) |
|
|
| マップのコンシューマーがここで設定する cachelistener |
|
|
| イベントのタイプ - ここでは、追加、更新、削除、削除 を行います。 |
|
|
| オブジェクトの oid |
|
|
| キャッシュの名前 - 例: foo |
|
|
| キャッシュのタイプ - here map |
オブジェクト値は、メッセージボディー内の put および update アクション内に格納されます。
サンプルは次のとおりです。
fromF("hazelcast-%sfoo", HazelcastConstants.MAP_PREFIX)
.log("object...")
.choice()
.when(header(HazelcastConstants.LISTENER_ACTION).isEqualTo(HazelcastConstants.ADDED))
.log("...added")
.to("mock:added")
.when(header(HazelcastConstants.LISTENER_ACTION).isEqualTo(HazelcastConstants.ENVICTED))
.log("...envicted")
.to("mock:envicted")
.when(header(HazelcastConstants.LISTENER_ACTION).isEqualTo(HazelcastConstants.UPDATED))
.log("...updated")
.to("mock:updated")
.when(header(HazelcastConstants.LISTENER_ACTION).isEqualTo(HazelcastConstants.REMOVED))
.log("...removed")
.to("mock:removed")
.otherwise()
.log("fail!");