我创建了一个Caffeine AsyncLoadingCache,并配置了refreshAfterWrite。对于给定的键,如果某个值已加载到缓存中,并且在刷新过程中出现错误,则会删除该键/值。相反,我希望保留旧值并更新过期时间戳,这样它就不会立即再次刷新。有没有办法配置这种行为?
您可以实现CacheLoader.reload(key,oldValue(或AsyncCacheLoader.asyncReload(key,oldValue。当发生错误时,它不应该删除旧值,但可以在下一次调用时再次触发。如果结果解析为null
,则应将其删除。由于提供了旧值,如果返回,则会根据需要重置时间戳。