Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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
Rx java 如何在使用RxJava执行周期性请求时避免重叠请求_Rx Java_Reactive Programming_Rx Java2_Reactivex - Fatal编程技术网

Rx java 如何在使用RxJava执行周期性请求时避免重叠请求

Rx java 如何在使用RxJava执行周期性请求时避免重叠请求,rx-java,reactive-programming,rx-java2,reactivex,Rx Java,Reactive Programming,Rx Java2,Reactivex,我想使用RxJava(实际上是RxJava2)定期发送网络(HTTP)请求。第一次尝试大致如下所示(改编自此): 这将每隔5秒调用sendNetworkRequest 但是,如果sendNetworkRequest()需要一段时间才能完成(例如在速度较慢的网络上,或者如果有多次重试…),则请求将重叠 我想做的是确保请求之间有5秒的间隔,即从上一个请求结束到下一个请求开始 如何使用RxJava实现这一点?使用repeatWhen Observable.fromCallable(sendNe

我想使用RxJava(实际上是RxJava2)定期发送网络(HTTP)请求。第一次尝试大致如下所示(改编自此):

这将每隔5秒调用sendNetworkRequest

但是,如果sendNetworkRequest()需要一段时间才能完成(例如在速度较慢的网络上,或者如果有多次重试…),则请求将重叠

我想做的是确保请求之间有5秒的间隔,即从上一个请求结束到下一个请求开始


如何使用RxJava实现这一点?

使用
repeatWhen

    Observable.fromCallable(sendNetworkRequest())
              .repeatWhen(observable -> observable.delay(5, TimeUnit.SECONDS));

伟大的这正是我需要的。
    Observable.fromCallable(sendNetworkRequest())
              .repeatWhen(observable -> observable.delay(5, TimeUnit.SECONDS));