gpt4 book ai didi

java - Guava Cache CacheLoader.refreshAfterWrite() 和 .expireAfterAccess() 结合使用

转载 作者:搜寻专家 更新时间:2023-11-01 03:38:24 26 4
gpt4 key购买 nike

我们正在使用由 CacheLoader 构建的 Guava LoadingCache

我们正在寻找的是一个缓存,它会定期刷新其内容,但如果 key 不再被访问,也会在给定(更长)的时间范围后使 key 过期。

是否可以在同一个 CacheLoader< 上使用 .refresAfterWrite(30, TimeUnit.SECONDS).expireAfterAccess(10,TimeUnit.MINUTES)/?

我的经验是,由于通过 refreshAfterWrite 定期重新加载, key 永远不会被逐出。文档让我对这一点有点不确定。

最佳答案

这应该会如您所愿。来自 CacheBuilder 文档:

Currently automatic refreshes are performed when the first stale request for an entry occurs. The request triggering refresh will make a blocking call to CacheLoader.reload(K, V) and immediately return the new value if the returned future is complete, and the old value otherwise.

所以如果一个键在最后一次写入后 30 秒被查询,它将被刷新;如果在最后一次访问后 10 分钟内未被查询,则它将成为过期资格,同时不会刷新。

关于java - Guava Cache CacheLoader.refreshAfterWrite() 和 .expireAfterAccess() 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22359960/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com