アプリケーション コンポーネントで SelfPopulatingCache を使用することを計画しています。これは、リードスルーと更新用のバッキング キャッシュのように見えるものをサポートするためです。
ただし、timeToLiveSecondsの構成には少し困惑しています。これは私のテスト構成です:
<ehcache>
<diskStore path="java.io.tmpdir"/>
<cache name="myCache" maxElementsInMemory="50000" overflowToDisk="false"
eternal="false" timeToIdleSeconds="0" timeToLiveSeconds="2"/>
</ehcache>
単体テストでは、次のことを行います。
- キャッシュに 2 つのエントリがあることを確認します
- 3秒間眠る
- ただし、スリープ後、キャッシュにはまだ 2 つのエントリがあります。
オンラインの他の投稿 (ドキュメントではありません) によると、次に読み取りを実行すると、エントリが削除されます。
ただし、代わりに CacheEntryFactory が呼び出され、有効期限が切れた要素のキャッシュに null 要素が追加されます。
timeToLiveSeconds の有効期限が切れたときに代わりに完全なエビクションを実行するようにこれを構成する方法はありますか?