public class RetryAlgorithm<ResponseT>
The retry algorithm, which makes decision based either on the thrown exception or the returned response, and the execution time settings of the previous attempt.
This class is thread-safe.
Type Parameter |
|
---|---|
Name | Description |
ResponseT |
Constructors
RetryAlgorithm(ResultRetryAlgorithm<ResponseT> resultAlgorithm, TimedRetryAlgorithm timedAlgorithm) (deprecated)
public RetryAlgorithm(ResultRetryAlgorithm<ResponseT> resultAlgorithm, TimedRetryAlgorithm timedAlgorithm)
Deprecated. use RetryAlgorithm#RetryAlgorithm(ResultRetryAlgorithmWithContext, TimedRetryAlgorithmWithContext) instead
Creates a new retry algorithm instance, which uses thrown exception or returned response and timed algorithms to make a decision. The result algorithm has higher priority than the timed algorithm.
Instances that are created using this constructor will ignore the RetryingContext that is passed in to the retrying methods. Use <xref uid="com.google.api.gax.retrying.RetryAlgorithm.RetryAlgorithm(com.google.api.gax.retrying.ResultRetryAlgorithmWithContext<ResponseT>,com.google.api.gax.retrying.TimedRetryAlgorithmWithContext)" data-throw-if-not-resolved="false">#RetryAlgorithm(ResultRetryAlgorithmWithContext, TimedRetryAlgorithmWithContext) to create an instance that will respect the RetryingContext.
Parameters | |
---|---|
Name | Description |
resultAlgorithm |
ResultRetryAlgorithm<ResponseT> result algorithm to use |
timedAlgorithm |
TimedRetryAlgorithm timed algorithm to use |
RetryAlgorithm(ResultRetryAlgorithmWithContext<ResponseT> resultAlgorithm, TimedRetryAlgorithmWithContext timedAlgorithm)
public RetryAlgorithm(ResultRetryAlgorithmWithContext<ResponseT> resultAlgorithm, TimedRetryAlgorithmWithContext timedAlgorithm)
Creates a new retry algorithm instance, which uses thrown exception or returned response and timed algorithms to make a decision. The result algorithm has higher priority than the timed algorithm.
Parameters | |
---|---|
Name | Description |
resultAlgorithm |
ResultRetryAlgorithmWithContext<ResponseT> result algorithm to use |
timedAlgorithm |
TimedRetryAlgorithmWithContext timed algorithm to use |
Methods
createFirstAttempt() (deprecated)
public TimedAttemptSettings createFirstAttempt()
Deprecated. use #createFirstAttempt(RetryingContext) instead
Creates a first attempt TimedAttemptSettings.
Returns | |
---|---|
Type | Description |
TimedAttemptSettings |
first attempt settings |
createFirstAttempt(RetryingContext context)
public TimedAttemptSettings createFirstAttempt(RetryingContext context)
Creates a first attempt TimedAttemptSettings.
Parameter | |
---|---|
Name | Description |
context |
RetryingContext the RetryingContext that can be used to get the initial RetrySettings |
Returns | |
---|---|
Type | Description |
TimedAttemptSettings |
first attempt settings |
createNextAttempt(RetryingContext context, Throwable previousThrowable, ResponseT previousResponse, TimedAttemptSettings previousSettings)
public TimedAttemptSettings createNextAttempt(RetryingContext context, Throwable previousThrowable, ResponseT previousResponse, TimedAttemptSettings previousSettings)
Creates a next attempt TimedAttemptSettings. This method will return first non-null value, returned by either result or timed retry algorithms in that particular order.
Parameters | |
---|---|
Name | Description |
context |
RetryingContext the RetryingContext that can be used to determine the RetrySettings for the next attempt |
previousThrowable |
Throwable exception thrown by the previous attempt or null if a result was returned instead |
previousResponse |
ResponseT response returned by the previous attempt or null if an exception was thrown instead |
previousSettings |
TimedAttemptSettings previous attempt settings |
Returns | |
---|---|
Type | Description |
TimedAttemptSettings |
next attempt settings, can be |
createNextAttempt(Throwable previousThrowable, ResponseT previousResponse, TimedAttemptSettings previousSettings) (deprecated)
public TimedAttemptSettings createNextAttempt(Throwable previousThrowable, ResponseT previousResponse, TimedAttemptSettings previousSettings)
Deprecated. use #createNextAttempt(RetryingContext, Throwable, Object, TimedAttemptSettings) instead
Creates a next attempt TimedAttemptSettings. This method will return first non-null value, returned by either result or timed retry algorithms in that particular order.
Parameters | |
---|---|
Name | Description |
previousThrowable |
Throwable exception thrown by the previous attempt or null if a result was returned instead |
previousResponse |
ResponseT response returned by the previous attempt or null if an exception was thrown instead |
previousSettings |
TimedAttemptSettings previous attempt settings |
Returns | |
---|---|
Type | Description |
TimedAttemptSettings |
next attempt settings, can be |
getResultAlgorithm()
public ResultRetryAlgorithm<ResponseT> getResultAlgorithm()
Returns | |
---|---|
Type | Description |
ResultRetryAlgorithm<ResponseT> |
getTimedAlgorithm()
public TimedRetryAlgorithm getTimedAlgorithm()
Returns | |
---|---|
Type | Description |
TimedRetryAlgorithm |
shouldRetry(RetryingContext context, Throwable previousThrowable, ResponseT previousResponse, TimedAttemptSettings nextAttemptSettings)
public boolean shouldRetry(RetryingContext context, Throwable previousThrowable, ResponseT previousResponse, TimedAttemptSettings nextAttemptSettings)
Returns true
if another attempt should be made, or false
otherwise.
Parameters | |
---|---|
Name | Description |
context |
RetryingContext the RetryingContext that can be used to determine whether another attempt should be made |
previousThrowable |
Throwable exception thrown by the previous attempt or null if a result was returned instead |
previousResponse |
ResponseT response returned by the previous attempt or null if an exception was thrown instead |
nextAttemptSettings |
TimedAttemptSettings attempt settings, which will be used for the next attempt, if accepted |
Returns | |
---|---|
Type | Description |
boolean |
|
Exceptions | |
---|---|
Type | Description |
CancellationException |
if the retrying process should be cancelled |
shouldRetry(Throwable previousThrowable, ResponseT previousResponse, TimedAttemptSettings nextAttemptSettings) (deprecated)
public boolean shouldRetry(Throwable previousThrowable, ResponseT previousResponse, TimedAttemptSettings nextAttemptSettings)
Deprecated. use #shouldRetry(RetryingContext, Throwable, Object, TimedAttemptSettings) instead
Returns true
if another attempt should be made, or false
otherwise.
Parameters | |
---|---|
Name | Description |
previousThrowable |
Throwable exception thrown by the previous attempt or null if a result was returned instead |
previousResponse |
ResponseT response returned by the previous attempt or null if an exception was thrown instead |
nextAttemptSettings |
TimedAttemptSettings attempt settings, which will be used for the next attempt, if accepted |
Returns | |
---|---|
Type | Description |
boolean |
|
Exceptions | |
---|---|
Type | Description |
CancellationException |
if the retrying process should be canceled |