项目中有个接口必须要上报成功,否则要进行重试
重试次数为9,重试时间为2,4,8,16,24,32,64,128,256,512
我用rxjava实现了任意次数和任意时间的重试,其实都是使用Retry操作符实现的,
和我上次写的一篇文章: 用Rxjava2解决Token过期 自动重新请求 ,网络请求队列
技术点基本一样,不同点在于上篇文章可以同时请求n个网络 ,这篇文章只能请求一个,
上篇文章没有重试时间。 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 cur * Consumer是简易版的Observer,他有多重重载,可以自定义你需要处理的信息,我这里调用的是只接受onNext消息的方法, * 他只提供一个回调接口accept,由于没有onError和onCompete,无法再 接受到onError或者onCompete之后,实现函数回调。 * 无法回调,并不代表不接收,他还是会接收到on 1. 主要功能 最起初的话思考如果只是简单这样的话其实也好实现,重写httpClient里面就有相关的超时 重试 机制,但是如果要是实现了某个整体的方法来进行失败 重试 那不能更好。所以就根据这个想法实现了以下的几个功能: 可以更简单的针对整个方法来进行 延时 或者有失败 重试 的调用执行。 可以设置首次是否延迟执行以及延迟执行的 时间 。 可以设置失败 重试 调用的

本文口味:冰镇杨梅 预计阅读:20分钟 最近公司在搞活动,需要依赖一个第三方接口,测试阶段并没有什么异常状况,但上线后发现依赖的接口有时候会因为内部错误而返回系统异常,虽然概率不大,但总因为这个而报警总是不好的,何况死信队列的消息还需要麻烦运维进行重新投递,所以加上 重试 机制势在必行。 重试 机制可以保护系统减少因 网络 波动、依赖服务短暂性不可用带来的影响,让系统能更稳定的运行的一种保护...
Android- Rx java 常用操作符 1.应用场景 延时 执行操作 默认是子线程 可以通过observeOn 切换的是观察者的执行线程 Observable.just(1).delay(2000,TimeUnit.MILLISECONDS) // .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Consumer<Object>() { @Override public void a
业务需求当我们在app里发起 网络 请求 时,可能会因为各种问题导致失败。如何利用 Rx Java 来实现出现错误后 重试 若干次,并且可以设定 重试 时间 间隔。具体实现 网络 请求 使用Retrofit来做, 请求 用户信息接口@GET("/userinfo?noToken=1") Observable<Response> getUserInfoNoToken(); 请求 用户信息接口的逻辑代码
三、 Rx Java flatMap操作符用法详解 四、 Rx Java concatMap操作符用法详解 五、 Rx Java onErrorResumeNext操作符实现app与服务器间token机制 六、 Rx Java retryWhen操作符...
Windows系统提供了一些 网络 延时 测试工具,以下是几种常用的工具: 1. ping命令:在命令提示符窗口中运行`ping 目标IP地址`,可以测试与目标IP地址之间的 网络 延迟和丢包情况。例如,`ping www.baidu.com`。 2. tracert命令:在命令提示符窗口中运行`tracert 目标IP地址`,可以跟踪数据包从本地到目标IP地址的路径并显示每个节点的延迟。例如,`tracert www.baidu.com`。 3. PathPing命令:在命令提示符窗口中运行`pathping 目标IP地址`,可以结合ping和tracert的功能,显示每跳的延迟和丢包情况,并给出整体路径的统计信息。例如,`pathping www.baidu.com`。 4. Network Monitor:这是Windows操作系统自带的 网络 监视工具,可以通过抓包记录 网络 数据并分析 网络 延迟等问题。 5. Wireshark:这是一个第三方开源的 网络 协议分析工具,可以捕获和分析 网络 数据包,用于诊断 网络 延迟和其他 网络 问题。 这些工具可以帮助你测试 网络 延迟并找出 网络 问题的原因。根据你的具体需求,选择合适的工具进行使用。
java.util.concurrent.ExecutionException 'android.enableAapt2' is deprecated and should not be use 15301