Package com.azure.core.http.policy
Class ExponentialBackoff
java.lang.Object
com.azure.core.http.policy.ExponentialBackoff
- All Implemented Interfaces:
RetryStrategy
A truncated exponential backoff implementation of
RetryStrategy
that has a delay duration that exponentially
increases with each retry attempt until an upper bound is reached after which every retry attempt is delayed by the
provided max delay duration.-
Field Summary
Fields inherited from interface com.azure.core.http.policy.RetryStrategy
HTTP_STATUS_TOO_MANY_REQUESTS
-
Constructor Summary
ConstructorDescriptionCreates an instance ofExponentialBackoff
with a maximum number of retry attempts configured by the environment propertyConfiguration.PROPERTY_AZURE_REQUEST_RETRY_COUNT
, or three if it isn't configured or is less than or equal to 0.ExponentialBackoff
(int maxRetries, Duration baseDelay, Duration maxDelay) Creates an instance ofExponentialBackoff
.Creates an instance ofExponentialBackoff
. -
Method Summary
Modifier and TypeMethodDescriptioncalculateRetryDelay
(int retryAttempts) Computes the delay between each retry.int
Max number of retry attempts to be make.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.azure.core.http.policy.RetryStrategy
shouldRetry, shouldRetryException
-
Constructor Details
-
ExponentialBackoff
public ExponentialBackoff()Creates an instance ofExponentialBackoff
with a maximum number of retry attempts configured by the environment propertyConfiguration.PROPERTY_AZURE_REQUEST_RETRY_COUNT
, or three if it isn't configured or is less than or equal to 0. This strategy starts with a delay of 800 milliseconds and exponentially increases with each additional retry attempt to a maximum of 8 seconds. -
ExponentialBackoff
Creates an instance ofExponentialBackoff
.- Parameters:
options
- TheExponentialBackoffOptions
.- Throws:
NullPointerException
- ifoptions
isnull
.
-
ExponentialBackoff
Creates an instance ofExponentialBackoff
.- Parameters:
maxRetries
- The max retry attempts that can be made.baseDelay
- The base delay duration for retry.maxDelay
- The max delay duration for retry.- Throws:
IllegalArgumentException
- ifmaxRetries
is less than 0 orbaseDelay
is less than or equal to 0 ormaxDelay
is less thanbaseDelay
.
-
-
Method Details
-
getMaxRetries
public int getMaxRetries()Description copied from interface:RetryStrategy
Max number of retry attempts to be make.- Specified by:
getMaxRetries
in interfaceRetryStrategy
- Returns:
- The max number of retry attempts.
-
calculateRetryDelay
Description copied from interface:RetryStrategy
Computes the delay between each retry.- Specified by:
calculateRetryDelay
in interfaceRetryStrategy
- Parameters:
retryAttempts
- The number of retry attempts completed so far.- Returns:
- The delay duration before the next retry.
-