EhCache - 删除过期的元素(因为timeToIdleSeconds或timeToLiveSeconds)而不试图获取它?

gfj*_*fjr 6 ehcache

EhCache文档说:

  • 访问myCache中已空闲超过一小时(timeToIdleSeconds)的条目会导致该元素被逐出.
  • 如果条目过期但未被访问,并且没有资源约束强制驱逐,则过期的条目仍然存在.
  • 获取过期元素会将其从缓存中删除并返回null.

如果实现并注册CacheEventListener以接收元素已过期,则可以看到在尝试获取过期元素时触发事件,但不会在'timeToIdleSeconds'之后触发.

是否有可能在过期后强制删除过期的元素?因为在我的情况下,在此之后没有人会试图再次获得它.

谢谢.

ska*_*red 6

我用以下代码完成了它:

cache.evictExpiredElements();
cache.flush();
Run Code Online (Sandbox Code Playgroud)