2016-12-08 6 views
0

私はEhCacheコア3.0を使用しています。 BaseExpiryクラスとEh107Expiryクラスを使用して、キャッシュが期限切れになっているかどうかをチェックします。これらのクラスは、Expiryインターフェースを実装します。私のクエリは、キャッシュが期限切れであるかどうかをチェックするために使用されるメソッドを拡張できますか?メソッドがそのキャッシュからのデータを使用している場合、時間が経過してもキャッシュの内容を期限切れにしたくありません。ehCache 3.0で有効期限の機能を拡張する方法

+0

有効期限を設定する条件について詳しく説明してください。 – cruftex

答えて

0

section on Expiry専用ドキュメントをご覧ください。あなたができることとそのやり方を理解するのに役立ちます。

それでも問題が解決しない場合は、コメントに示唆されているように質問を展開してください。

+0

ありがとうございます。それは私のために働いた –

0

xmlでアイドルタイムアウトを追加するか、ExpiryインターフェイスからgetExpiryForAccessをオーバーライドすると、エントリにアクセスするときにエントリが削除されません。カスタムExpire.This blogでEhキャッシュを構築するコードです説明付きの他のプロパティについては

 CacheConfigurationBuilder<Integer,String> cacheConfigurationBuilder = CacheConfigurationBuilder.newCacheConfigurationBuilder(); 
     cacheConfigurationBuilder.withExpiry(new Expiry() { 
      @Override 
      public Duration getExpiryForCreation(Object key, Object value) { 
       return new Duration(120, TimeUnit.SECONDS); 
      } 

      @Override 
      public Duration getExpiryForAccess(Object key, Object value) { 
       return new Duration(120, TimeUnit.SECONDS); 
      } 

      @Override 
      public Duration getExpiryForUpdate(Object key, Object oldValue, Object newValue) { 
       return null; 
      } 
     }) 
       .usingEvictionPrioritizer(Eviction.Prioritizer.LFU) 
       .withResourcePools(ResourcePoolsBuilder.newResourcePoolsBuilder().heap(200, EntryUnit.ENTRIES)) 
         // adding defaultSerializer config service to configuration 
       .add(new DefaultSerializerConfiguration(CompactJavaSerializer.class, SerializerConfiguration.Type.KEY)) 
       .buildConfig(Integer.class, String.class); 
関連する問題