Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用rxjava在一个流中轮询多个API端点_Java_Rx Java_Polling - Fatal编程技术网

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

使用rxjava在一个流中轮询多个API端点,java,rx-java,polling,Java,Rx Java,Polling,我目前正在尝试轮询多个端点(它们是不同的) 问题是我想只轮询那些没有以聚合方式返回我需要的状态的端点,因此流基本上是: 生成请求->将它们合并到一个流->轮询响应->检查状态匹配: 如果不等待,请重新执行流程 如果将观察者从流中带出 这就是我写的,感觉好像我错过了什么 Observable.merge(buildRequests()) .repeatWhen(obs -> obs.delay(5000, TimeUnit.MILLISECONDS)) .takeUntil(response

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

生成请求->将它们合并到一个流->轮询响应->检查状态匹配:

  • 如果不等待,请重新执行流程
  • 如果将观察者从流中带出
  • 这就是我写的,感觉好像我错过了什么

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

    Observable.fromCallable(() -> buildRequests())
    .repeatWhen(o -> CheckShouldRepeat(v -> Observable.timer(5000, TimeUnit.MILLISECONDS)));
    
    这会有所帮助