Class ExponentialBackoffOptions

java.lang.Object
com.azure.core.http.policy.ExponentialBackoffOptions

public class ExponentialBackoffOptions extends Object

The ExponentialBackoffOptions class provides configuration options for the ExponentialBackoff retry strategy. This strategy uses a delay duration that exponentially increases with each retry attempt until an upper bound is reached. After reaching the upper bound, every retry attempt is delayed by the provided max delay duration.

This class is useful when you need to customize the behavior of the exponential backoff strategy. It allows you to specify the maximum number of retry attempts, the base delay duration, and the maximum delay duration.

Code sample:

In this example, an ExponentialBackoffOptions is created and used to configure an ExponentialBackoff retry strategy. The strategy is then used in a RetryPolicy which can then be added to a pipeline. For a request then sent by the pipeline, if the server responds with a transient error, the request will be retried with an exponentially increasing delay.

 ExponentialBackoffOptions options = new ExponentialBackoffOptions().setMaxRetries(5)
     .setBaseDelay(Duration.ofSeconds(1))
     .setMaxDelay(Duration.ofSeconds(10));

 ExponentialBackoff retryStrategy = new ExponentialBackoff(options);
 
See Also:
  • Constructor Details

  • Method Details

    • getMaxRetries

      public Integer getMaxRetries()
      Gets the max retry attempts that can be made.
      Returns:
      The max retry attempts that can be made.
    • setMaxRetries

      public ExponentialBackoffOptions setMaxRetries(Integer maxRetries)
      Sets the max retry attempts that can be made.
      Parameters:
      maxRetries - the max retry attempts that can be made.
      Returns:
      The updated ExponentialBackoffOptions
      Throws:
      IllegalArgumentException - if maxRetries is less than 0.
    • getBaseDelay

      public Duration getBaseDelay()
      Gets the base delay duration for retry.
      Returns:
      The base delay duration for retry.
    • setBaseDelay

      public ExponentialBackoffOptions setBaseDelay(Duration baseDelay)
      Sets the base delay duration for retry.
      Parameters:
      baseDelay - the base delay duration for retry.
      Returns:
      The updated ExponentialBackoffOptions
      Throws:
      IllegalArgumentException - if baseDelay is less than or equal to 0 or maxDelay has been set and is less than baseDelay.
    • getMaxDelay

      public Duration getMaxDelay()
      Gets the max delay duration for retry.
      Returns:
      The max delay duration for retry.
    • setMaxDelay

      public ExponentialBackoffOptions setMaxDelay(Duration maxDelay)
      Sets the max delay duration for retry.
      Parameters:
      maxDelay - the max delay duration for retry.
      Returns:
      The updated ExponentialBackoffOptions
      Throws:
      IllegalArgumentException - if maxDelay is less than or equal to 0 or baseDelay has been set and is more than maxDelay.