Class ExponentialBackoffStrategy

  • All Implemented Interfaces:
    RetryStrategy

    public final class ExponentialBackoffStrategy
    extends java.lang.Object
    implements RetryStrategy
    Implements an exponential backoff strategy for retries. The backoff delay increases exponentially with each retry attempt, with optional jitter.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  ExponentialBackoffStrategy.Builder
      Builder class for the ExponentialBackoffStrategy.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static ExponentialBackoffStrategy.Builder builder()
      Creates a new Builder instance for ExponentialBackoffStrategy.
      boolean canRetry​(int retryAttempt)
      Returns true if the given retry attempt will be allowed by this strategy.
      int getDelayMillis​(int retryAttempt)
      Return the number of milliseconds to delay the next retry attempt.
      int getMaxRetryAttempts()
      Return the maximum number of retry attempts for this strategy.
      • Methods inherited from class java.lang.Object

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

      • canRetry

        public boolean canRetry​(int retryAttempt)
        Description copied from interface: RetryStrategy
        Returns true if the given retry attempt will be allowed by this strategy.
        Specified by:
        canRetry in interface RetryStrategy
        Parameters:
        retryAttempt - The retry attempt number, starting at 1 (i.e. the second overall attempt, or first retry is attempt 1).
        Returns:
        True if this attempt can be retried, otherwise false.
      • getDelayMillis

        public int getDelayMillis​(int retryAttempt)
        Description copied from interface: RetryStrategy
        Return the number of milliseconds to delay the next retry attempt.
        Specified by:
        getDelayMillis in interface RetryStrategy
        Parameters:
        retryAttempt - The retry attempt number, starting at 1 (i.e. the second overall attempt/first retry is #1).
        Returns:
        The number of milliseconds to delay the next retry attempt.
      • getMaxRetryAttempts

        public int getMaxRetryAttempts()
        Description copied from interface: RetryStrategy
        Return the maximum number of retry attempts for this strategy.
        Specified by:
        getMaxRetryAttempts in interface RetryStrategy
        Returns:
        The number of retry attempts that this strategy will attempt.