2017-12-18 1 views
0

Ich habe eine REST API, die mongodb mit dem reaktiven Scala-Treiber, der auf RxScala basiert aufrufen.Wie man beobachtbar in RxJava/RxScala

In meinem API-Controller oder Dienste Schichten, muss ich das Caching verwenden, um Anrufe zu vermeiden, mit Hazelcast (oder andere Caching-Werkzeuge) MongoDB

Alle meine Dienste sind async und gibt nur beobachtbar, eine Ahnung, wie kann ich Implementieren Sie das Caching mit Observable?

Antwort

0

Cache in .doOnNext(), abrufen als . MyFromCacheObservable(). switchIfEmpty (serviceCallOrDbOrWhatever. doOnNext (mySaveToCache))

-1
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 

Versuchen Sie dies. Sollte dir helfen.