- 2.71.0 (latest)
- 2.70.3
- 2.69.0
- 2.68.2
- 2.67.0
- 2.66.0
- 2.65.0
- 2.63.1
- 2.62.0
- 2.61.0
- 2.60.0
- 2.59.1
- 2.58.0
- 2.57.0
- 2.55.0
- 2.54.1
- 2.53.0
- 2.52.0
- 2.51.0
- 2.50.0
- 2.49.0
- 2.48.1
- 2.47.0
- 2.46.1
- 2.45.0
- 2.43.0
- 2.42.0
- 2.41.0
- 2.39.0
- 2.38.0
- 2.37.0
- 2.36.0
- 2.35.0
- 2.34.1
- 2.33.0
- 2.32.1
- 2.31.1
- 2.30.1
- 2.24.0
- 2.23.3
- 2.22.0
- 2.21.0
- 2.20.1
- 2.19.6
- 2.18.7
- 2.17.0
- 2.16.0
- 2.15.0
- 2.14.0
- 2.13.0
- 2.12.2
- 2.11.0
- 2.10.0
- 2.9.0
- 2.8.1
- 2.7.1
public class ExponentialRetryAlgorithm implements TimedRetryAlgorithmWithContextThe timed retry algorithm which uses jittered exponential backoff factor for calculating the next attempt execution time.
This class is thread-safe.
Implements
TimedRetryAlgorithmWithContextConstructors
ExponentialRetryAlgorithm(RetrySettings globalSettings, ApiClock clock)
public ExponentialRetryAlgorithm(RetrySettings globalSettings, ApiClock clock)Creates a new exponential retry algorithm instance.
| Parameters | |
|---|---|
| Name | Description | 
| globalSettings | RetrySettingsglobal retry settings (attempt independent) | 
| clock | ApiClockclock to use for time-specific calculations | 
Methods
createFirstAttempt()
public TimedAttemptSettings createFirstAttempt()Creates a first attempt TimedAttemptSettings. The first attempt is configured to be executed immediately.
| Returns | |
|---|---|
| Type | Description | 
| TimedAttemptSettings | first attempt settings | 
createFirstAttempt(RetryingContext context)
public TimedAttemptSettings createFirstAttempt(RetryingContext context)Creates a first attempt TimedAttemptSettings. The first attempt is configured to be executed immediately.
| Parameter | |
|---|---|
| Name | Description | 
| context | RetryingContexta RetryingContext that can contain custom RetrySettings and retryable codes | 
| Returns | |
|---|---|
| Type | Description | 
| TimedAttemptSettings | first attempt settings | 
createNextAttempt(RetryingContext context, TimedAttemptSettings previousSettings)
public TimedAttemptSettings createNextAttempt(RetryingContext context, TimedAttemptSettings previousSettings)Creates a next attempt TimedAttemptSettings. The implementation increments the current attempt count and uses randomized exponential backoff factor for calculating next attempt execution time.
| Parameters | |
|---|---|
| Name | Description | 
| context | RetryingContexta RetryingContext that can contain custom RetrySettings and retryable codes | 
| previousSettings | TimedAttemptSettingsprevious attempt settings | 
| Returns | |
|---|---|
| Type | Description | 
| TimedAttemptSettings | next attempt settings | 
createNextAttempt(TimedAttemptSettings previousSettings)
public TimedAttemptSettings createNextAttempt(TimedAttemptSettings previousSettings)Creates a next attempt TimedAttemptSettings. The implementation increments the current attempt count and uses randomized exponential backoff factor for calculating next attempt execution time.
| Parameter | |
|---|---|
| Name | Description | 
| previousSettings | TimedAttemptSettingsprevious attempt settings | 
| Returns | |
|---|---|
| Type | Description | 
| TimedAttemptSettings | next attempt settings | 
nextRandomLong(long bound)
protected long nextRandomLong(long bound)| Parameter | |
|---|---|
| Name | Description | 
| bound | long | 
| Returns | |
|---|---|
| Type | Description | 
| long | |
shouldRPCTerminate(long timeLeftMs)
protected boolean shouldRPCTerminate(long timeLeftMs)| Parameter | |
|---|---|
| Name | Description | 
| timeLeftMs | long | 
| Returns | |
|---|---|
| Type | Description | 
| boolean | |
shouldRetry(RetryingContext context, TimedAttemptSettings nextAttemptSettings)
public boolean shouldRetry(RetryingContext context, TimedAttemptSettings nextAttemptSettings)Returns true if another attempt should be made, or false otherwise.
| Parameters | |
|---|---|
| Name | Description | 
| context | RetryingContexta RetryingContext that can contain custom RetrySettings and retryable codes. Ignored by this implementation. | 
| nextAttemptSettings | TimedAttemptSettingsattempt settings, which will be used for the next attempt, if accepted | 
| Returns | |
|---|---|
| Type | Description | 
| boolean | 
 | 
shouldRetry(TimedAttemptSettings nextAttemptSettings)
public boolean shouldRetry(TimedAttemptSettings nextAttemptSettings)Returns true if another attempt should be made, or false otherwise.
| Parameter | |
|---|---|
| Name | Description | 
| nextAttemptSettings | TimedAttemptSettingsattempt settings, which will be used for the next attempt, if accepted | 
| Returns | |
|---|---|
| Type | Description | 
| boolean | 
 |