2017-12-24 25 views
-1

현재 여러 끝점 (다른 점)을 폴링하려고합니다. 문제는 내가 수집 한 상태를 반환하지 않는 끝점 만 계속 폴링하고 싶습니다. 방식이 흐름은 기본적으로 그래서 :rxjava를 사용하여 하나의 스트림에서 여러 API 끝점을 폴링

요청을 구축 -> 하나 개의 스트림에 병합 -> 설문 조사 응답 -> 체크는 상태가 일치되어

  1. 기다려 흐름을 다시 실행하지 않는 경우
  2. 관찰자를 스트림에서 꺼내는 경우

이 내가 쓴 그리고 난

덕분에 잔뜩 뭔가

Observable.merge(buildRequests()) 
.repeatWhen(obs -> obs.delay(5000, TimeUnit.MILLISECONDS)) 
.takeUntil(response -> CheckShouldRepeat(response)).subscribe(whatever()); 
누락 것 같은이 느낌 것입니다!

답변

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

도움이 될 수 있습니다.