我有一个 REST API,它使用基于 RxScala 的反应式 scala 驱动程序调用 mongodb。
在我的 API 控制器或服务层中,我需要使用缓存来避免使用 hazelcast(或任何其他缓存工具)调用 mongodb
我所有的服务都是异步的并且只返回 observable,知道如何使用 observable 实现缓存吗?
缓存在.doOnNext()中,检索为.myFromCacheObservable()。switchIfEmpty (serviceCallOrDbOrWhatever.doOnNext ( mySaveToCache ))
Observable<String> stringResponse = response
.flatMap(resp -> resp.getContent()
.map(bytes -> new String(bytes)))
.retry(5)
.cast(String.class)
.map(String::trim)
.cache(); //remember the sequence of items emitted by the Observable and emit the same sequence to future Subscribers
尝试这个。应该能帮到你。