我计划在我的应用程序组件中使用 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,并且将为我的过期元素添加一个空元素到缓存中。
有什么方法可以配置它以在 timeToLiveSeconds 到期时执行完全驱逐?