Interface RetryStrategy.Builder<B extends RetryStrategy.Builder<B,T>,T extends RetryStrategy>

All Known Subinterfaces:
AdaptiveRetryStrategy.Builder, LegacyRetryStrategy.Builder, StandardRetryStrategy.Builder
All Known Implementing Classes:
DefaultAdaptiveRetryStrategy.Builder, DefaultLegacyRetryStrategy.Builder, DefaultStandardRetryStrategy.Builder, RetryPolicyAdapter.Builder
Enclosing interface:
RetryStrategy

public static interface RetryStrategy.Builder<B extends RetryStrategy.Builder<B,T>,T extends RetryStrategy>
Builder to create immutable instances of RetryStrategy.
  • Method Summary

    Modifier and Type
    Method
    Description
    Configure the backoff strategy used by the retry strategy.
    Build a new RetryStrategy with the current configuration on this builder.
    maxAttempts(int maxAttempts)
    Configure the maximum number of attempts used by the retry strategy.
    default B
    retryOnException(Class<? extends Throwable> throwable)
    Configure the strategy to retry when a failure exception class is equal to the provided class.
    Configure the strategy to retry when the provided predicate returns true, given a failure exception.
    default B
    Configure the strategy to retry when a failure exception class is an instance of the provided class (includes subtypes).
    default B
    retryOnExceptionOrCause(Class<? extends Throwable> throwable)
    Configure the strategy to retry when a failure exception or one of its cause classes is equal to the provided class.
    default B
    Configure the strategy to retry when a failure exception or one of its cause classes is an instance of the provided class (includes subtypes).
    default B
    retryOnRootCause(Class<? extends Throwable> throwable)
    Configure the strategy to retry the root cause of a failure (the final cause) a failure exception is equal to the provided class.
    default B
    Configure the strategy to retry the root cause of a failure (the final cause) a failure exception is an instance of to the provided class (includes subtypes).
    throttlingBackoffStrategy(BackoffStrategy throttlingBackoffStrategy)
    Configure the backoff strategy used for throttling exceptions by this strategy.
    Configure a predicate that determines whether a retryable exception is a throttling exception.
  • Method Details

    • retryOnException

      B retryOnException(Predicate<Throwable> shouldRetry)
      Configure the strategy to retry when the provided predicate returns true, given a failure exception.
    • retryOnException

      default B retryOnException(Class<? extends Throwable> throwable)
      Configure the strategy to retry when a failure exception class is equal to the provided class.
    • retryOnExceptionInstanceOf

      default B retryOnExceptionInstanceOf(Class<? extends Throwable> throwable)
      Configure the strategy to retry when a failure exception class is an instance of the provided class (includes subtypes).
    • retryOnExceptionOrCause

      default B retryOnExceptionOrCause(Class<? extends Throwable> throwable)
      Configure the strategy to retry when a failure exception or one of its cause classes is equal to the provided class.
    • retryOnExceptionOrCauseInstanceOf

      default B retryOnExceptionOrCauseInstanceOf(Class<? extends Throwable> throwable)
      Configure the strategy to retry when a failure exception or one of its cause classes is an instance of the provided class (includes subtypes).
    • retryOnRootCause

      default B retryOnRootCause(Class<? extends Throwable> throwable)
      Configure the strategy to retry the root cause of a failure (the final cause) a failure exception is equal to the provided class.
    • retryOnRootCauseInstanceOf

      default B retryOnRootCauseInstanceOf(Class<? extends Throwable> throwable)
      Configure the strategy to retry the root cause of a failure (the final cause) a failure exception is an instance of to the provided class (includes subtypes).
    • maxAttempts

      B maxAttempts(int maxAttempts)
      Configure the maximum number of attempts used by the retry strategy.

      The actual number of attempts made may be less, depending on the retry strategy implementation. For example, the standard and adaptive retry modes both employ short-circuiting which reduces the maximum attempts during outages.

      The default value for the standard and adaptive retry strategies is 3.

    • backoffStrategy

      B backoffStrategy(BackoffStrategy backoffStrategy)
      Configure the backoff strategy used by the retry strategy.

      By default, this uses jittered exponential backoff.

    • throttlingBackoffStrategy

      B throttlingBackoffStrategy(BackoffStrategy throttlingBackoffStrategy)
      Configure the backoff strategy used for throttling exceptions by this strategy.

      By default, this uses jittered exponential backoff.

    • treatAsThrottling

      B treatAsThrottling(Predicate<Throwable> treatAsThrottling)
      Configure a predicate that determines whether a retryable exception is a throttling exception. When this predicate returns true, the retry strategy will use the throttlingBackoffStrategy(software.amazon.awssdk.retries.api.BackoffStrategy). If it returns false, the backoffStrategy(software.amazon.awssdk.retries.api.BackoffStrategy) will be used. This predicate will not be called for non-retryable exceptions.
    • build

      T build()
      Build a new RetryStrategy with the current configuration on this builder.