src/main/java/io/reactivex/Observable.java
@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.NONE)
    public final Observable<T> retry(long times) {
        return retry(times, Functions.alwaysTrue());
    }
@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.NONE)
    public final Observable<T> retry(long times) {
        return retry(times, Functions.alwaysTrue());
    }
Returns an Observable that mirrors the source ObservableSource, resubscribing to it if it calls {@code onError}
up to a specified number of retries.
<p>
<img width="640" height="325" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/retry.o.n.png" alt="">
<p>
If the source ObservableSource calls {@link Observer#onError}, this method will resubscribe to the source
ObservableSource for a maximum of {@code count} resubscriptions rather than propagating the
{@code onError} call.
<p>
Any and all items emitted by the source ObservableSource will be emitted by the resulting ObservableSource, even
those emitted during failed subscriptions. For example, if an ObservableSource fails at first but emits
{@code [1, 2]} then succeeds the second time and emits {@code [1, 2, 3, 4, 5]} then the complete sequence
of emissions and notifications would be {@code [1, 2, 1, 2, 3, 4, 5, onComplete]}.
<dl>
<dt><b>Scheduler:</b></dt>
<dd>{@code retry} does not operate by default on a particular {@link Scheduler}.</dd>
</dl>

@param times
the number of times to resubscribe if the current Observable fails
@return the source ObservableSource modified with retry logic
@see <a href="http://reactivex.io/documentation/operators/retry.html">ReactiveX operators documentation: Retry</a>