134.4. マップキャッシュコンシューマー - from ("hazelcast-map:foo")

Hazelcast は、データグリッドでイベントリスナーを提供します。キャッシュが操作される場合に通知を受け取りたい場合は、マップコンシューマーを使用できます。4 つのイベントがあります: putupdatedelete、および envict です。イベントタイプは、hazelcast.listener.action ヘッダー変数に格納されます。マップコンシューマーは、これらの変数内にいくつかの追加情報を提供します。

レスポンスメッセージ内のヘッダー変数:

名前タイプ説明

CamelHazelcastListenerTime

Long

イベントの時間 (ミリ秒)

CamelHazelcastListenerType

String

マップのコンシューマーがここで設定する cachelistener

CamelHazelcastListenerAction

String

イベントのタイプ - ここでは、追加更新削除削除 を行います。

CamelHazelcastObjectId

String

オブジェクトの oid

CamelHazelcastCacheName

String

キャッシュの名前 - 例: foo

CamelHazelcastCacheType

String

キャッシュのタイプ - 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!");