Ehcache:如何有条件地返回陈旧数据

时间:2019-01-17 21:46:47

标签: java caching ehcache

通常,当Ehcache缓存中的条目超过其ttl / tti时,它将被标记为陈旧。然后,当要求缓存返回此陈旧条目时,该条目将被删除,并且缓存将返回null。调用方法将必须转到数据存储,以获取新条目以存储在缓存中。

在我的用例中,如果数据存储出现故障,则返回陈旧数据要比不返回数据更好。问题是,当我进行数据存储调用以检查它是否启动时,我的陈旧条目已被删除。

在某些布尔条件下(即DatastoreMonitor返回isDown),有什么方法可以指示Ehcache有目的地返回过时的数据吗?

1 个答案:

答案 0 :(得分:0)

最后,我实现了自己的ConditionallyStaleCache extends Object。构造函数采用三个参数-shortTermCachebackUpCacheDao。我本人实现了所有的“如果Dao关闭,然后从备份返回”逻辑,因为我认为EhCache不可能为我执行此逻辑。

我很想知道是否有更好的方法,但这是我目前使用的方法。