Class FixedDelay
- All Implemented Interfaces:
RetryStrategy
FixedDelay class is an implementation of the RetryStrategy interface. This strategy uses a
fixed delay duration between each retry attempt.
This class is useful when you need to handle retries for operations that may transiently fail. It ensures that the retries are performed with a fixed delay to provide a consistent delay between retries.
Code sample:
In this example, a FixedDelay is created with a maximum of 3 retry attempts and a delay of 1 second
between each attempt. The strategy is then used in a RetryPolicy which can then be added to the pipeline.
For a request then sent by the pipeline, if the server responds with a transient error, the request will be retried
with a fixed delay of 1 second between each attempt.
FixedDelay retryStrategy = new FixedDelay(3, Duration.ofSeconds(1)); RetryPolicy policy = new RetryPolicy(retryStrategy);
- See Also:
-
Field Summary
Fields inherited from interface com.azure.core.http.policy.RetryStrategy
HTTP_STATUS_TOO_MANY_REQUESTS -
Constructor Summary
ConstructorsConstructorDescriptionFixedDelay(int maxRetries, Duration delay) Creates an instance ofFixedDelay.FixedDelay(FixedDelayOptions fixedDelayOptions) Creates an instance ofFixedDelay. -
Method Summary
Modifier and TypeMethodDescriptioncalculateRetryDelay(int retryAttempts) Computes the delay between each retry.intMax number of retry attempts to be made.booleanshouldRetryCondition(RequestRetryCondition requestRetryCondition) This method is consulted to determine if a retry attempt should be made for the givenRequestRetryCondition.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.azure.core.http.policy.RetryStrategy
calculateRetryDelay, shouldRetry, shouldRetryException
-
Constructor Details
-
FixedDelay
Creates an instance ofFixedDelay.- Parameters:
maxRetries- The max number of retry attempts that can be made.delay- The fixed delay duration between retry attempts.- Throws:
IllegalArgumentException- IfmaxRetriesis negative.NullPointerException- Ifdelayisnull.
-
FixedDelay
Creates an instance ofFixedDelay.- Parameters:
fixedDelayOptions- TheFixedDelayOptions.
-
-
Method Details
-
getMaxRetries
public int getMaxRetries()Description copied from interface:RetryStrategyMax number of retry attempts to be made.- Specified by:
getMaxRetriesin interfaceRetryStrategy- Returns:
- The max number of retry attempts.
-
calculateRetryDelay
Description copied from interface:RetryStrategyComputes the delay between each retry.If both this method and
RetryStrategy.calculateRetryDelay(RequestRetryCondition)are overridden, this method is ignored.- Specified by:
calculateRetryDelayin interfaceRetryStrategy- Parameters:
retryAttempts- The number of retry attempts completed so far.- Returns:
- The delay duration before the next retry.
-
shouldRetryCondition
Description copied from interface:RetryStrategyThis method is consulted to determine if a retry attempt should be made for the givenRequestRetryCondition.By default, if the
RequestRetryConditioncontains a non-nullHttpResponse, then theRetryStrategy.shouldRetry(HttpResponse)method is called, otherwise theRetryStrategy.shouldRetryException(Throwable)method is called.- Specified by:
shouldRetryConditionin interfaceRetryStrategy- Parameters:
requestRetryCondition- TheRequestRetryConditioncontaining information that can be used to determine if the request should be retried.- Returns:
- Whether a retry should be attempted.
-