首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Caffeine -如何仅在创建时间后使缓存值过期

Caffeine -如何仅在创建时间后使缓存值过期
EN

Stack Overflow用户
提问于 2018-08-10 13:57:41
回答 1查看 3.9K关注 0票数 0

Caffeine具有查看上次写入时间的expiresAfterWrite方法。我想让它只看创建的时候。因此,当第一个条目到来时,条目将在一段固定时间后过期,而不会查看此条目上的更新次数。这个是可能的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-10 14:17:57

可以,但需要使用更高级的Expiry应用编程接口。在下面的示例中,新创建的条目具有固定的5分钟生存期。这是通过在更新或读取时返回currentDuration来完成的。

代码语言:javascript
复制
LoadingCache<Key, Graph> graphs = Caffeine.newBuilder()
    .expireAfter(new Expiry<Key, Graph>() {
      public long expireAfterCreate(Key key, Graph graph, long currentTime) {
        return TimeUnit.MINUTES.toNanos(5);
      }
      public long expireAfterUpdate(Key key, Graph graph, 
          long currentTime, long currentDuration) {
        return currentDuration;
      }
      public long expireAfterRead(Key key, Graph graph,
          long currentTime, long currentDuration) {
        return currentDuration;
      }
    })
    .build(key -> createExpensiveGraph(key));
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51779879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档