RetryStrategy Interface

public interface RetryStrategy

The interface for determining the retry strategy used in RetryPolicy.

Field Summary

Modifier and Type Field and Description
static final int HTTP_STATUS_TOO_MANY_REQUESTS

HTTP response status code for Too Many Requests.

Method Summary

Modifier and Type Method and Description
abstract Duration calculateRetryDelay(int retryAttempts)

Computes the delay between each retry.

abstract int getMaxRetries()

Max number of retry attempts to be make.

default boolean shouldRetry(HttpResponse httpResponse)

This method is consulted to determine if a retry attempt should be made for the given HttpResponse if the retry attempts are less than getMaxRetries().

default boolean shouldRetryCondition(RequestRetryCondition requestRetryCondition)

This method is consulted to determine if a retry attempt should be made for the given RequestRetryCondition.

default boolean shouldRetryException(Throwable throwable)

This method is consulted to determine if a retry attempt should be made for the given Throwable propagated when the request failed to send.

Field Details

HTTP_STATUS_TOO_MANY_REQUESTS

public static final int HTTP_STATUS_TOO_MANY_REQUESTS

HTTP response status code for Too Many Requests.

Method Details

calculateRetryDelay

public abstract Duration calculateRetryDelay(int retryAttempts)

Computes the delay between each retry.

Parameters:

retryAttempts - The number of retry attempts completed so far.

Returns:

The delay duration before the next retry.

getMaxRetries

public abstract int getMaxRetries()

Max number of retry attempts to be make.

Returns:

The max number of retry attempts.

shouldRetry

public default boolean shouldRetry(HttpResponse httpResponse)

This method is consulted to determine if a retry attempt should be made for the given HttpResponse if the retry attempts are less than getMaxRetries().

Parameters:

httpResponse - The response from the previous attempt.

Returns:

Whether a retry should be attempted.

shouldRetryCondition

public default boolean shouldRetryCondition(RequestRetryCondition requestRetryCondition)

This method is consulted to determine if a retry attempt should be made for the given RequestRetryCondition.

By default, if the RequestRetryCondition contains a non-null HttpResponse, then the shouldRetry(HttpResponse httpResponse) method is called, otherwise the shouldRetryException(Throwable throwable) method is called.

Parameters:

requestRetryCondition - The RequestRetryCondition containing information that can be used to determine if the request should be retried.

Returns:

Whether a retry should be attempted.

shouldRetryException

public default boolean shouldRetryException(Throwable throwable)

This method is consulted to determine if a retry attempt should be made for the given Throwable propagated when the request failed to send.

Parameters:

throwable - The Throwable thrown during the previous attempt.

Returns:

Whether a retry should be attempted.

Applies to