RetryPolicy Class
- java.
lang. Object - com.
microsoft. azure. servicebus. primitives. RetryPolicy
- com.
public abstract class RetryPolicy
Represents an abstraction of a policy for retrying messaging operations when an exception is encountered. Some exceptions encountered by a sender or receiver can be transient like ServerBusy and the operation will succeed if retried. Clients can specify a retry policy using ConnectionStringBuilder which guides senders and receivers to automatically retry the failed operation before throwing the exception to the client application. Users should not implement this class, instead should use one of the provided implementations through #getDefault or #getNoRetry.
Constructor Summary
Modifier | Constructor | Description |
---|---|---|
protected | RetryPolicy(String name) |
Creates an instance of Retry |
Method Summary
Modifier and Type | Method and Description |
---|---|
static
Retry |
getDefault()
Retry policy that provides exponentially increasing retry intervals with each successive failure. |
Duration |
getNextRetryInterval(String clientId, Exception lastException, Duration remainingTime)
Gets the interval after which next |
static
Retry |
getNoRetry()
Gets a retry policy that doesn't retry any operations, effectively disabling retries. |
protected int | getRetryCount(String clientId) |
void |
incrementRetryCount(String clientId)
Increments the number of successive retry attempts made by a client. |
static boolean |
isRetryableException(Exception exception)
Determines if an exception is retry-able or not. |
protected abstract Duration |
onGetNextRetryInterval(String clientId, Exception lastException, Duration remainingTime, int baseWaitTime)
Adjusts the interval after which next |
void |
resetRetryCount(String clientId)
Resets the number of retry attempts made by a client. |
String | toString() |
Methods inherited from java.lang.Object
Constructor Details
RetryPolicy
protected RetryPolicy(String name)
Creates an instance of RetryPolicy with the given name.
Parameters:
Method Details
getDefault
public static RetryPolicy getDefault()
Retry policy that provides exponentially increasing retry intervals with each successive failure. This policy is suitable for use by use most client applications and is also the default policy if no retry policy is specified.
Returns:
getNextRetryInterval
public Duration getNextRetryInterval(String clientId, Exception lastException, Duration remainingTime)
Gets the interval after which nextRetry should be attempted, based on the last exception encountered and the remaining time before the operation times out.
Parameters:
Returns:
getNoRetry
public static RetryPolicy getNoRetry()
Gets a retry policy that doesn't retry any operations, effectively disabling retries. Clients can use this retry policy in case they do not want any operation automatically retried.
Returns:
getRetryCount
protected int getRetryCount(String clientId)
Parameters:
incrementRetryCount
public void incrementRetryCount(String clientId)
Increments the number of successive retry attempts made by a client.
Parameters:
isRetryableException
public static boolean isRetryableException(Exception exception)
Determines if an exception is retry-able or not. Only transient exceptions should be retried.
Parameters:
Returns:
onGetNextRetryInterval
protected abstract Duration onGetNextRetryInterval(String clientId, Exception lastException, Duration remainingTime, int baseWaitTime)
Adjusts the interval after which nextRetry should be attempted, based on the last exception encountered, the remaining time before the operation times out and the minimum wait time before retry. Clients can override this method to specify a wait time based on the exception encountered.
Parameters:
Returns:
resetRetryCount
public void resetRetryCount(String clientId)
Resets the number of retry attempts made by a client. This method is called by the client when retried operation succeeds.
Parameters:
toString
public String toString()
Overrides:
RetryPolicy.toString()