Java 咖啡因缓存:write()永远不会被调用
我的缓存是用Java 咖啡因缓存:write()永远不会被调用,java,caching,caffeine,Java,Caching,Caffeine,我的缓存是用编写器构建的: appsCache = Caffeine.newBuilder() .writer(this) .maximumSize(10) .expireAfterWrite(Duration.ofSeconds(64000)) .build(this); 在我的测试中,我加载10个项目,然后等待(无限循环+睡眠) 问题是,即使在调用cleanUp() 为什么没有触发write() 仅在条目更改时调用 当条目被创
编写器构建的
:
appsCache = Caffeine.newBuilder()
.writer(this)
.maximumSize(10)
.expireAfterWrite(Duration.ofSeconds(64000))
.build(this);
在我的测试中,我加载10个项目,然后等待(无限循环+睡眠)
问题是,即使在调用cleanUp()
为什么没有触发write()
仅在条目更改时调用
当条目被创建、修改或删除时,CacheWriter将收到通知。加载的映射(例如LoadingCache.get)、重新加载的映射(例如LoadingCache.refresh)或计算的映射(例如Map.computeIfPresent)不进行通信
您没有添加/删除条目。我知道了,谢谢。因此,当第一次加载项目时,我需要自己手动将其写入DB。这是一种正确的方法吗?@yaseco read in link about write mode as write-through-cache操作是同步执行的,只有当编写器成功完成时才会更新缓存。我现在明白了,我将使用
put()
触发write()