You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Guava Cache加载失败时,其他调用get(key)的线程会重试加载吗?

缓存加载失败后get(key)的重试逻辑

不同缓存实现的行为存在差异,常见情况如下:

  • Guava Cache:当第一个加载线程抛出异常时,所有等待该key的线程都会收到相同异常;后续调用get(key)会重新触发缓存加载逻辑,也就是会重试。你可以通过refreshAfterWrite配置或自定义CacheLoader的reload方法调整该行为,但默认规则是失败后下次调用会重试。
  • Caffeine:默认行为与Guava Cache一致,加载失败时等待线程均会获取到异常,后续调用get(key)会再次尝试加载。此外Caffeine提供了fallback机制,可自定义失败后的处理逻辑(比如返回默认值),但默认仍会触发重试。
  • 自定义缓存实现:完全取决于代码逻辑——如果加载失败后未给该key标记“加载失败”状态,后续调用会直接重试;若添加了带有效期的失败标记,则标记有效期内不会重试,过期后才会再次尝试加载。

内容的提问来源于stack exchange,提问作者Ipix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 04:15:40