2017-12-24 12 views
-1

Ich bin derzeit versucht, mehrere Endpunkte (die unterschiedlich sind) das Problem ist, ich möchte nur die Endpunkte abfragen, die nicht den Status zurückgegeben, den ich brauche in einer aggregierten Art und Weise, so dass die Strömung ist im Grunde:Polling mehrere API-Endpunkte in einem Stream mit rxjava

die Anfragen bauen -> verschmelzen sie zu einem Stream -> Umfrage für die Antwort -> Prüfung Status entspricht:

  1. wenn die Strömung nicht warten und Redo
  2. , wenn der Beobachter aus dem Stream

das ist, was ich geschrieben habe, und es fühlt sich an wie ich etwas fehlt bin

Observable.merge(buildRequests()) 
.repeatWhen(obs -> obs.delay(5000, TimeUnit.MILLISECONDS)) 
.takeUntil(response -> CheckShouldRepeat(response)).subscribe(whatever()); 

dank einem Bündel!

Antwort

0
Observable.fromCallable(() -> buildRequests()) 
.repeatWhen(o -> CheckShouldRepeat(v -> Observable.timer(5000, TimeUnit.MILLISECONDS))); 

Dies kann helfen.