我正在使用Scala版本的Caffeine,Scaffeine。
我试图填充缓存,它应该在到期后重新加载所有值(测试中10秒)。我可能会使用Guava' Suppliers.memoizeWithExpiration
但我想利用后台异步加载数据的优势。
我有以下代码段:
val dummy = List()
val myCache: AsyncLoadingCache[String, String] =
Scaffeine()
.refreshAfterWrite(10.second) //test
.buildAsyncFuture(
loader = userId => client.getByUserId(userId),
allLoader = Some(dummy => client.getAllUsers),
reloadLoader = None)
我认为allLoader
就是出于此目的,但在缓存构建期间只调用一次,并且只填充了在&#中枚举密钥的那些值。 34;虚设"名单。
有一个similar帖子建议实施CacheLoader#loadAll
,但任何提示都很棒,如何实现这一点
可能在Scala与Scaffeine?