我正在使用 Guava 缓存保持并定期刷新我们从长时间运行的数据库查询中收集的一些统计信息。我目前看到的问题是所有线程都必须等待刷新,而不是让调用者获取过期的缓存值。番石榴缓存中有没有办法允许过时的读取?
缓存是这样构建的
cache = CacheBuilder.<DateType, List<DataValueEventQuality>> newBuilder()
.expireAfterWrite(cacheExpirySeconds, TimeUnit.SECONDS).build();
我使用从缓存中检索cache.get(key, Callable)