使用rxjava在一个流中轮询多个API端点

时间:2017-12-24 06:42:33

标签: java rx-java polling

我目前正在尝试轮询多个端点(不同的端点) 问题是我想继续只轮询那些没有以聚合的方式返回我需要的状态的端点,所以流程基本上是:

构建请求 - >将它们合并到一个流中 - >民意调查回应 - >检查是状态匹配:

  1. 如果没有等待并重做流程
  2. 如果将观察者带出流
  3. 这就是我写的,感觉我错过了什么

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

    感谢一帮!

1 个答案:

答案 0 :(得分:0)

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

这可以提供帮助。