在我的场景中,获取新的(非缓存的)值是一项非常昂贵的操作,因此必须始终存在预计算的缓存值,而不是像EhCache所做的那样在读取时刷新它们。
因此,让线程在TTL到期时触发,用新值重新填充缓存是合理的,因此永远不会等待读取。
是否有一种使用Ehcache实现这一目标的方法?侦听OnElementExpired/逐出事件以重新填充缓存似乎是一种禁止(当我收到事件时,已经在等待读取)。
我想我可以使缓存本身永久化,并有我自己的计划任务,重新填充,但我没有从EhCache从哑巴地图,我现在有任何东西。真的是这样吗?在这种情况下没有办法让EhCache帮我吗?
发布于 2015-08-26 11:50:58
发布于 2015-08-25 21:39:53
看看RefreshAheadCache,由EHCache提供。
但是,我找不到任何使用它的例子,也找不到任何指标表明这是成熟的。
全班同学的评论是:
实现预读刷新的缓存装饰器。当缓存项到期前被访问并触发背景中值的重新加载时,就会提前读取。
这并不能直接解决问题,如下所述:
我的问题是如何在不等待读取触发缓存的情况下重新填充缓存
据我所知,没有标准的方法可以做到这一点。其原因是,过期不是基于计时器的。
(无耻)提示:由于我认为这是非常有用的,所以我在cache2k中实现了这一点。这个特性称为背景刷新,由CacheBuilder.backgroundRefresh(true)启用。
发布于 2015-08-25 22:31:41
https://stackoverflow.com/questions/32214191
复制相似问题