#504·caffeine

可变刷新

作者: ben-manes创建于 2021年2月21日更新于 2024年8月5日

目前支持 `refreshAfterWrite` 中固定的持续时间。每个条目的评估,类似于 `expireAfter(Expiry)`,将提供更灵活的方法。在 #261 中,它将在创建、读取和更新时进行评估。在 #498 中,还要求在异常情况下进行评估,即条目保持不变。#### 实现说明 Guava 中的一个特性(在兼容性上也在 Caffeine 中复制)是,`expireAfterWrite` 和 `expireAfterAccess` 都可以设置和执行。由于 `refreshAfterWrite` 依赖于写入时间戳,我们必须将代码生成扩展到 3 个时间戳。这不是可取的,也不是有用的,因此我们应该限制此特定组合,并重用已生成的 2 个时间戳变化(例如,用于 `expireAfter` 和 `refreshAfterWrite`)。禁止同时设置固定和可变刷新。这种方法只需要在现有生成的缓存条目上添加方法,以映射到正确的时间戳字段。本问题合并了 #261、#272、#360 和 #498。@denghongcai @eugenemiretsky、@anuraaga、@musiKk、@minwoox、@ikhoon、@barkanido、@wcpan

内容来源: ben-manes/caffeine