2016-11-18 4 views
0

私はHazelcast 3.7.x(この記事の執筆時点では最新)を使用しようとしています。JCacheプロバイダと宣言的な設定(スレッド化などの利点)。私はちょうど生きる時間を設定する必要がありますが、私のユースケースでは最大アイドル秒ではありません。更新が行われない場合(キャッシュ内のエントリの存続期間中に読み取りが行われている場合)に限り、アイテムをキャッシュに保持する必要があります。 max-idle-secondsを設定しないと、デフォルトで0になり、キャッシュ内のエントリは永久に保持されます。私がTTLよりも低い値に設定した場合、読み取りが行われる可能性があるため、意図した時間を過ぎてしまう可能性があります。私はhazelcast.xmlのドキュメントでそれを行う方法を見ることができませんでした。期限切れ方針が異なるプログラマティックインターフェイスを使用することはできますが、Hazelcastのドキュメントに記載されている初期化に関する問題があります。さらにJCacheプロバイダのためにそれを行うことができれば、私はXMLでそれを行う方法があり、単なる文書化されているとは思わないでしょう。Hazelcast JCacheで最大アイドル秒を無視し、ttlを保持する方法は?

これは不可能で、スレッドの問題を考慮したプログラム構成で動作するJCacheコードがある場合は、投稿してください。それは単なる呼び出しを作成するスレッドの問題であれば、私はそれを自分で行うことができます。

おかげ S

答えて

0

どちらのmax-アイドル秒もタイム・ツー・ライブ秒Hazelcast XML構成でJCacheの構成に適用されます。 cache要素には、「timed-expiry-policy」という1つのサブ要素のみを持つことができる「expiry-policy-factory」があり、変更、接触などのオプションがあります。

<cache name="somecache"> 
     <key-type class-name="java.lang.String"/> 
     <value-type class-name="java.lang.String"/> 
     <statistics-enabled>true</statistics-enabled> 
     <management-enabled>true</management-enabled> 
     <read-through>false</read-through> 
     <write-through>false</write-through> 
     <in-memory-format>OBJECT</in-memory-format> 
     <expiry-policy-factory> 
      <timed-expiry-policy-factory expiry-policy-type="MODIFIED" duration-amount="5" time-unit="SECONDS"/> 
       </expiry-policy-factory> 
     <backup-count>1</backup-count> 
    </cache> 
関連する問題