Interface ResultRetryAlgorithmWithContext<ResponseT> (2.21.0)

public interface ResultRetryAlgorithmWithContext<ResponseT> extends ResultRetryAlgorithm<ResponseT>

A result retry algorithm is responsible for the following operations (based on the response returned by the previous attempt or on the thrown exception):

  1. Accepting a task for retry so another attempt will be made.
  2. Canceling retrying process so the related java.util.concurrent.Future will be canceled.
  3. Creating TimedAttemptSettings for each subsequent retry attempt.

Implementations of this interface receive a RetryingContext that can contain specific RetrySettings and retryable codes that should be used to determine the retry behavior.

Implementations of this interface must be thread-safe.

Implements

com.google.api.gax.retrying.ResultRetryAlgorithm<ResponseT>

Type Parameter

NameDescription
ResponseT

Methods

createNextAttempt(RetryingContext context, Throwable previousThrowable, ResponseT previousResponse, TimedAttemptSettings previousSettings)

public abstract TimedAttemptSettings createNextAttempt(RetryingContext context, Throwable previousThrowable, ResponseT previousResponse, TimedAttemptSettings previousSettings)

Creates a next attempt TimedAttemptSettings.

Parameters
NameDescription
contextRetryingContext

the retrying context of this invocation that can be used to determine the settings for the next attempt.

previousThrowableThrowable

exception thrown by the previous attempt (null, if none)

previousResponseResponseT

response returned by the previous attempt

previousSettingsTimedAttemptSettings

previous attempt settings

Returns
TypeDescription
TimedAttemptSettings

shouldRetry(RetryingContext context, Throwable previousThrowable, ResponseT previousResponse)

public abstract boolean shouldRetry(RetryingContext context, Throwable previousThrowable, ResponseT previousResponse)

Returns true if another attempt should be made, or false otherwise.

Parameters
NameDescription
contextRetryingContext

the retrying context of this invocation that can be used to determine whether the call should be retried.

previousThrowableThrowable

exception thrown by the previous attempt (null, if none)

previousResponseResponseT

response returned by the previous attempt.

Returns
TypeDescription
boolean
Exceptions
TypeDescription
CancellationException