java - 在 Guava 缓存中,当创建 LoadingCache 而不提供它时,refreshAfterWrite 的默认值是什么
问题描述
在不提供 LoadingCache 的情况下创建时,refreshAfterWrite 的默认值是多少。
cache = CacheBuilder.newBuilder().build(new CacheLoader<Object, Object>() {
@Override
public Object load(Object o) throws Exception {
return getObj(o);
}
@Override
public ListenableFuture<Object> reload(Object o) throws Exception {
final ListenableFutureTask<Object> task = ListenableFutureTask.create(() -> {
return getObj(o);
});
executor.execute(task);
return task;
}
});
我在调试中看到 refreshAfterWrite 是-1,但这意味着什么?这意味着它永远不会重新加载?
解决方案
我可以从这个问题中读到:
据记载,如果未设置任何选项,则由 CacheBuilder 创建的缓存将永远不会进行任何类型的驱逐。这也适用于刷新,因为它是一种驱逐形式。
推荐阅读
- javascript - 为什么 bson.dumps 会转义我的 dicts (jsons) 列表
- java - 在春季自动装配父类字段的最佳方法是什么?
- forms - 在 PreactJS 中处理表单数据
- php - PHP如何将嵌套的foreach变成数组的数组(多维数组)
- javascript - 如何在打开链接时禁用深层链接,它不会重定向到应用程序而是转到移动浏览器
- aws-lambda - Lambda 将 ErrorMessage 添加到 SQS 消息
- firebase - 使用 Firebase 部署时出错:getaddrinfo ENOTFOUND
- c - 函数 struct page* alloc_pages() 中的无符号整数顺序是什么
- vue.js - 从数据库中获取数据,将其存储在数组中,以在 vuejs 中绘制图表
- java - 使用 BroadcastReceiver 更新 ProgressBar