【问题标题】:Ehcache: How to conditionally return stale dataEhcache:如何有条件地返回陈旧数据
【发布时间】:2019-06-12 04:11:49
【问题描述】:

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

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

有没有办法指示 Ehcache 在某些布尔值情况下(即 DatastoreMonitor 返回 isDown)有目的地返回陈旧数据?

【问题讨论】:

  • 添加hystrix或许会有帮助
  • Ehcache 2 还是 3?

标签: java caching ehcache


【解决方案1】:

最后,我实现了自己的ConditionallyStaleCache extends Object。构造函数接受三个参数 - shortTermCachebackUpCacheDao。我自己实现了所有“如果 Dao 关闭则从备份返回”的逻辑,因为我认为 EhCache 不可能为我做这个逻辑。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 2020-06-23
    • 2015-04-07
    • 1970-01-01
    相关资源
    最近更新 更多