Class StreamingRetryAlgorithm<ResponseT> (2.58.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

Name Description
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
Name Description
resultAlgorithm ResultRetryAlgorithm<ResponseT>
timedAlgorithm TimedRetryAlgorithm

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
Name Description
resultAlgorithm ResultRetryAlgorithmWithContext<ResponseT>
timedAlgorithm TimedRetryAlgorithmWithContext

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
Name Description
context RetryingContext
previousThrowable Throwable
previousResponse ResponseT
previousSettings TimedAttemptSettings
Returns
Type Description
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
Name Description
previousThrowable Throwable
previousResponse ResponseT
previousSettings TimedAttemptSettings
Returns
Type Description
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
Name Description
context RetryingContext
previousThrowable Throwable
previousResponse ResponseT
nextAttemptSettings TimedAttemptSettings
Returns
Type Description
boolean
Overrides
Exceptions
Type Description
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
Name Description
previousThrowable Throwable
previousResponse ResponseT
nextAttemptSettings TimedAttemptSettings
Returns
Type Description
boolean
Overrides
Exceptions
Type Description
CancellationException