23.7. 例
キー/値を名前付きキャッシュに入れます。
from("direct:start") .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.PUT) (1) .setHeader(InfinispanConstants.KEY).constant("123") (2) .to("infinispan:myCacheName&cacheContainer=#cacheContainer"); (3)
詳細は以下のようになります。
- 1 - 実行する操作を設定する
- 2 - キャッシュ内の要素を識別するために使用されるキーを設定します
3 - レジストリーから設定されたキャッシュマネージャー
cacheContainer
を使用して、myCacheName
という名前のキャッシュに要素を配置します。次の例のように、エントリーの有効期限が切れてキャッシュから削除されるまでの有効期間および/またはアイドル時間を設定できます。
from("direct:start") .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.GET) .setHeader(InfinispanConstants.KEY).constant("123") .setHeader(InfinispanConstants.LIFESPAN_TIME).constant(100L) (1) .setHeader(InfinispanConstants.LIFESPAN_TIME_UNIT.constant(TimeUnit.MILLISECONDS.toString()) (2) .to("infinispan:myCacheName");
ここで、
- 1 - エントリーの寿命を設定します
- 2 - 寿命の時間単位を設定します
クエリー
from("direct:start") .setHeader(InfinispanConstants.OPERATION, InfinispanConstants.QUERY) .setHeader(InfinispanConstants.QUERY_BUILDER, new InfinispanQueryBuilder() { @Override public Query build(QueryFactory<Query> qf) { return qf.from(User.class).having("name").like("%abc%").build(); } }) .to("infinispan:myCacheName?cacheContainer=#cacheManager") ;
ドメインオブジェクトの .proto 記述子は、リモート Data Grid サーバーに登録する必要があります。公式の Infinispan ドキュメントの リモートクエリーの例 を参照してください。
カスタムリスナー
from("infinispan://?cacheContainer=#cacheManager&customListener=#myCustomListener") .to("mock:result");
myCustomListener
のインスタンスが存在する必要があり、Camel は Registry
からそれを検索できる必要があります。ユーザーは org.apache.camel.component.infinispan.remote.InfinispanRemoteCustomListener
クラスを拡張し、結果のクラスに @ClientListener
でアノテーションを付けることをお勧めします。これはパッケージ org.infinispan.client.hotrod.annotation
にあります。