gpt4 book ai didi

rest - Guava LoadingCache 与 Kotlin 协程

转载 作者:行者123 更新时间:2023-12-02 08:04:08 25 4
gpt4 key购买 nike

我正在使用 Guava 的 Loading Cache缓存 HTTP 请求的结果。 Kotlin/KTOR 提供了一个 HTTP Client Library基于协程(即非阻塞 HTTP 请求)。

我的问题是加载缓存不知道suspending 函数。我传递给加载缓存的 load 函数不能挂起。所以我被迫在 runBlocking 调用中执行 HTTP 请求,完全消除了非阻塞调用的好处。

我的问题是:有没有更好的方法?您将如何实现协同程序结果的缓存?

最佳答案

你可以将 Deferred 从协程 async { ... } 放入 guava 的缓存中

像这样

LoadingCache<Key, Deferred<Value>> = CacheBuilder.newBuilder()
// ...
.build(CacheLoader<Key, Deferred<Value>> { key ->
someScope.async { computeMyValueSuspend(key) }
})

关于rest - Guava LoadingCache 与 Kotlin 协程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53558215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com