项目中有个接口必须要上报成功,否则要进行重试
重试次数为9,重试时间为2,4,8,16,24,32,64,128,256,512
我用rxjava实现了任意次数和任意时间的重试,其实都是使用Retry操作符实现的,
和我上次写的一篇文章: 用Rxjava2解决Token过期 自动重新请求 ,网络请求队列 ,
技术点基本一样,不同点在于上篇文章可以同时请求n个网络 ,这篇文章只能请求一个,
上篇文章没有重试时间。
看图说话
核心代码:RetryWithTime
重试次数为9,重试时间为2,4,8,16,24,32,64,128,256,512
我用rxjava实现了任意次数和任意时间的重试,其实都是使用Retry操作符实现的,
和我上次写的一篇文章: 用Rxjava2解决Token过期 自动重新请求 ,网络请求队列 ,
技术点基本一样,不同点在于上篇文章可以同时请求n个网络 ,这篇文章只能请求一个,
上篇文章没有重试时间。
看图说话
![](https://i-blog.csdnimg.cn/blog_migrate/fb9cf647ae33d8cfdfd64eab1d3ac6b3.png)
核心代码:RetryWithTime
package com.example.rxjavademo; import java.util.Date; import java.util.concurrent.TimeUnit; import io.reactivex.Observable; import io.reactivex.ObservableSource; import io.reactivex.functions.Function; /** * Created by 瑜哥 on 2018/4/13. */ public class RetryWithTime implements Function<Observable<Throwable>, ObservableSource<RequsetBean>> { int