src/main/java/io/reactivex/Completable.java
@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.NONE)
    public final Completable retry(long times, Predicate<? super Throwable> predicate) {
        return fromPublisher(toFlowable().retry(times, predicate));
    }
@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.NONE)
    public final Completable retry(long times, Predicate<? super Throwable> predicate) {
        return fromPublisher(toFlowable().retry(times, predicate));
    }
@ CheckReturnValue @ SchedulerSupport ( SchedulerSupport . NONE ) public final Completable retry ( long times , Predicate < ? super Throwable > predicate ) { return fromPublisher ( toFlowable ( ) . retry ( times , predicate ) ) ; }
Returns a Completable that when this Completable emits an error, retries at most times
or until the predicate returns false, whichever happens first and emitting the last error.
<p>
<img width="640" height="361" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/Completable.retry.nf.png" alt="">
<dl>
<dt><b>Scheduler:</b></dt>
<dd>{@code retry} does not operate by default on a particular {@link Scheduler}.</dd>
</dl>
<p>History: 2.1.8 - experimental
@param times the number of times to resubscribe if the current Completable fails
@param predicate the predicate that is called with the latest throwable and should return
true to indicate the returned Completable should resubscribe to this Completable.
@return the new Completable instance
@throws NullPointerException if predicate is null
@throws IllegalArgumentException if times is negative
@since 2.2
Returns a Completable that when this Completable emits an error retries at most times or until the predicate returns false whichever happens first and emitting the last error . <p > <img width = 640 height = 361 src = https : // raw . github . com / wiki / ReactiveX / RxJava / images / rx - operators / Completable . retry . nf . png alt = > <dl > <dt > <b > Scheduler : < / b > < / dt > <dd > {