Class StreamingRetryAlgorithm<ResponseT> (2.35.0)

public final class StreamingRetryAlgorithm<ResponseT> extends RetryAlgorithm<ResponseT>

The streaming retry algorithm, which makes decision based either on the thrown exception and the execution time settings of the previous attempt. This extends RetryAlgorithm to take additional information (provided by ServerStreamingAttemptCallable) into account.

This class is thread-safe.

Internal use only - public for technical reasons.

Inheritance

java.lang.Object > RetryAlgorithm > StreamingRetryAlgorithm<ResponseT>

Type Parameter

NameDescription
ResponseT

Constructors

StreamingRetryAlgorithm(ResultRetryAlgorithm<ResponseT> resultAlgorithm, TimedRetryAlgorithm timedAlgorithm) (deprecated)

public StreamingRetryAlgorithm(ResultRetryAlgorithm<ResponseT> resultAlgorithm, TimedRetryAlgorithm timedAlgorithm)

Deprecated. use #StreamingRetryAlgorithm(ResultRetryAlgorithmWithContext, TimedRetryAlgorithmWithContext) instead

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.StreamingRetryAlgorithm.StreamingRetryAlgorithm(com.google.api.gax.retrying.ResultRetryAlgorithmWithContext<ResponseT>,com.google.api.gax.retrying.TimedRetryAlgorithmWithContext)" data-throw-if-not-resolved="false">#StreamingRetryAlgorithm(ResultRetryAlgorithmWithContext, TimedRetryAlgorithmWithContext) to create an instance that will respect the RetryingContext.

Parameters
NameDescription
resultAlgorithmResultRetryAlgorithm<ResponseT>
timedAlgorithmTimedRetryAlgorithm

StreamingRetryAlgorithm(ResultRetryAlgorithmWithContext<ResponseT> resultAlgorithm, TimedRetryAlgorithmWithContext timedAlgorithm)

public StreamingRetryAlgorithm(ResultRetryAlgorithmWithContext<ResponseT> resultAlgorithm, TimedRetryAlgorithmWithContext timedAlgorithm)

Creates a StreamingRetryAlgorithm that will use the settings (if any) in the RetryingContext that is passed in to the retrying methods.

Parameters
NameDescription
resultAlgorithmResultRetryAlgorithmWithContext<ResponseT>
timedAlgorithmTimedRetryAlgorithmWithContext

Methods

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.

The attempt settings will be reset if the stream attempt produced any messages.

Parameters
NameDescription
contextRetryingContext
previousThrowableThrowable
previousResponseResponseT
previousSettingsTimedAttemptSettings
Returns
TypeDescription
TimedAttemptSettings
Overrides

createNextAttempt(Throwable previousThrowable, ResponseT previousResponse, TimedAttemptSettings previousSettings)

public TimedAttemptSettings createNextAttempt(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.

The attempt settings will be reset if the stream attempt produced any messages.

Parameters
NameDescription
previousThrowableThrowable
previousResponseResponseT
previousSettingsTimedAttemptSettings
Returns
TypeDescription
TimedAttemptSettings
Overrides

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.

Schedules retries only if the StreamResumptionStrategy in the ServerStreamingAttemptCallable supports it.

Parameters
NameDescription
contextRetryingContext
previousThrowableThrowable
previousResponseResponseT
nextAttemptSettingsTimedAttemptSettings
Returns
TypeDescription
boolean
Overrides
Exceptions
TypeDescription
CancellationException

shouldRetry(Throwable previousThrowable, ResponseT previousResponse, TimedAttemptSettings nextAttemptSettings)

public boolean shouldRetry(Throwable previousThrowable, ResponseT previousResponse, TimedAttemptSettings nextAttemptSettings)

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

Ensures retries are only scheduled if the StreamResumptionStrategy in the ServerStreamingAttemptCallable supports it.

Parameters
NameDescription
previousThrowableThrowable
previousResponseResponseT
nextAttemptSettingsTimedAttemptSettings
Returns
TypeDescription
boolean
Overrides
Exceptions
TypeDescription
CancellationException