美文网首页Android-RxJava
使用RxJava实现接口重试

使用RxJava实现接口重试

作者: 好学人 | 来源:发表于2020-11-09 10:33 被阅读0次

如果接口请求失败,使用二进制指数退避算法进行接口重试。

Observable
        .create((ObservableEmitter<Object> emitter) -> {
            System.out.println("开始请求接口...");
            emitter.onError(new RuntimeException("请求接口异常..."));
        })
        .retryWhen((Observable<Throwable> errorObservable) -> errorObservable
                .zipWith(Observable.just(1, 2, 4, 8, 16), (Throwable e, Integer time) -> time)
                .flatMap((Integer delay) -> {
                    System.out.println(delay + "秒后重试");
                    return Observable.timer(delay, TimeUnit.SECONDS);
                }))
        .subscribe(System.out::println);

相关文章

网友评论

    本文标题:使用RxJava实现接口重试

    本文链接:https://www.haomeiwen.com/subject/trhlbktx.html