Interface BackoffStrategy

All Known Implementing Classes:
EqualJitterBackoffStrategy, FixedDelayBackoffStrategy, FullJitterBackoffStrategy
Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface BackoffStrategy
  • Field Details

    • RETRIES_ATTEMPTED_CEILING

      static final int RETRIES_ATTEMPTED_CEILING
      Max permitted retry times. To prevent exponentialDelay from overflow, there must be 2 ^ retriesAttempted <= 2 ^ 31 - 1, which means retriesAttempted <= 30, so that is the ceil for retriesAttempted.
  • Method Details

    • computeDelayBeforeNextRetry

      Duration computeDelayBeforeNextRetry(RetryPolicyContext context)
      Compute the delay before the next retry request. This strategy is only consulted when there will be a next retry.
      Parameters:
      context - Context about the state of the last request and information about the number of requests made.
      Returns:
      Amount of time in milliseconds to wait before the next attempt. Must be non-negative (can be zero).
    • calculateExponentialDelay

      default int calculateExponentialDelay(int retriesAttempted, Duration baseDelay, Duration maxBackoffTime)
    • defaultStrategy

      static BackoffStrategy defaultStrategy()
    • defaultStrategy

      static BackoffStrategy defaultStrategy(RetryMode retryMode)
    • defaultThrottlingStrategy

      static BackoffStrategy defaultThrottlingStrategy()
    • defaultThrottlingStrategy

      static BackoffStrategy defaultThrottlingStrategy(RetryMode retryMode)
    • none

      static BackoffStrategy none()