提问人:Дима Шестаев 提问时间:11/1/2023 最后编辑:marc_sДима Шестаев 更新时间:11/12/2023 访问量:38
过期时数据库中的咖啡因缓存更新值
Caffeine cache update value from db when expired
问:
看起来像一个简单的任务,我想要的只是通过再次从数据库查询来更新缓存中的过期值。我想在缓存生成器中指定此步骤。
new CaffeineCache(Caffeine
.newBuilder()
.removalListener[UUID, Option[F]]((k, v, rc) => fetchNewDataByKey(k))
.recordStats()
.build[UUID, Entry[Option[F]]]())
一开始,我认为 evictionListener 或 removalListener 是一种解决方案,但我无法将提取的值放回缓存中,它看起来像一个应该在构建器内部的选项,但到目前为止找不到我正在寻找的任何迹象。
总之。我想要一个缓存,在值过期时获取新数据,然后用新的 ttl 将其放回缓存中。
如果没有内置的解决方案,我想我将运行一个旁路进程,该进程将刷新这些值。
(如果您知道如何使用任何其他缓存而不是咖啡因来做到这一点,也请告诉我)
答: 暂无答案
评论
scheduler
refreshAfterWrite
refreshAfterWrite
或 .expireAfterWrite