@Override
    public TimeValue schedule(final int attemptNumber) {
        return calculateDelay(attemptNumber);
    }
An implementation that backs off exponentially based on the number of
consecutive failed attempts. It uses the following defaults:
<pre>
     no delay in case it was never tried or didn't fail so far
    6 s delay for one failed attempt (= {@link #getInitialExpiry()})
   60 s delay for two failed attempts
 10 min delay for three failed attempts
100 min delay for four failed attempts
  ~16 h delay for five failed attempts
   24 h delay for six or more failed attempts (= {@link #getMaxExpiry()})
</pre>

The following equation is used to calculate the delay for a specific pending operation:
<pre>
    delay = {@link #getInitialExpiry()} * Math.pow({@link #getBackOffRate()},
    {@code consecutiveFailedAttempts} - 1))
</pre>
The resulting delay won't exceed {@link #getMaxExpiry()}.

@since 5.0
httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/schedule/ExponentialBackOffSchedulingStrategy.java