Package 

Class RetryInterceptor

  • All Implemented Interfaces:
    okhttp3.Interceptor

    
    public final class RetryInterceptor
     implements Interceptor
                        

    OkHttp interceptor that implements exponential backoff retry logic for transient failures.

    This interceptor automatically retries failed requests with increasing delays between attempts, using jitter to prevent thundering herd problems when many clients retry simultaneously.

    • Base delay starts at initialDelayMs (default: 1 second)

    • Each retry doubles the delay (exponential backoff)

    • Jitter of ±25% is added to prevent synchronized retries

    • Maximum delay is capped at maxDelayMs (default: 30 seconds)

    • Maximum of maxRetries attempts (default: 3)

    • Client errors: HTTP 4xx (except 429) - these indicate bugs, not transient failures

    • Authentication errors: HTTP 401, 403 - require configuration fix

    • Successful responses: HTTP 2xx

    • Method Summary

      Modifier and Type Method Description
      Response intercept(Interceptor.Chain chain)
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • RetryInterceptor

        RetryInterceptor(Integer maxRetries, Long initialDelayMs, Long maxDelayMs, Double jitterFactor)
        Parameters:
        maxRetries - Maximum number of retry attempts (default: 3)
        initialDelayMs - Initial delay before first retry in milliseconds (default: 1000)
        maxDelayMs - Maximum delay between retries in milliseconds (default: 30000)
        jitterFactor - Randomization factor for delay (0.0 to 1.0, default: 0.
    • Method Detail

      • intercept

         Response intercept(Interceptor.Chain chain)