Class StreamingRetryAlgorithm<ResponseT> (2.83.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(@Nullable RetryingContext context, @Nullable Throwable previousThrowable, @Nullable ResponseT previousResponse, TimedAttemptSettings previousSettings)

public @Nullable TimedAttemptSettings createNextAttempt(@Nullable RetryingContext context, @Nullable Throwable previousThrowable, @Nullable 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 @org.jspecify.annotations.Nullable com.google.api.gax.retrying.RetryingContext
previousThrowable @org.jspecify.annotations.Nullable java.lang.Throwable
previousResponse @org.jspecify.annotations.Nullable ResponseT
previousSettings TimedAttemptSettings
Returns
Type Description
@org.jspecify.annotations.Nullable com.google.api.gax.retrying.TimedAttemptSettings
Overrides

createNextAttempt(@Nullable Throwable previousThrowable, @Nullable ResponseT previousResponse, TimedAttemptSettings previousSettings)

public @Nullable TimedAttemptSettings createNextAttempt(@Nullable Throwable previousThrowable, @Nullable 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 @org.jspecify.annotations.Nullable java.lang.Throwable
previousResponse @org.jspecify.annotations.Nullable ResponseT
previousSettings TimedAttemptSettings
Returns
Type Description
@org.jspecify.annotations.Nullable com.google.api.gax.retrying.TimedAttemptSettings
Overrides

shouldRetry(@Nullable RetryingContext context, @Nullable Throwable previousThrowable, @Nullable ResponseT previousResponse, TimedAttemptSettings nextAttemptSettings)

public boolean shouldRetry(@Nullable RetryingContext context, @Nullable Throwable previousThrowable, @Nullable 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 @org.jspecify.annotations.Nullable com.google.api.gax.retrying.RetryingContext
previousThrowable @org.jspecify.annotations.Nullable java.lang.Throwable
previousResponse @org.jspecify.annotations.Nullable ResponseT
nextAttemptSettings TimedAttemptSettings
Returns
Type Description
boolean
Overrides
Exceptions
Type Description
CancellationException

shouldRetry(@Nullable Throwable previousThrowable, @Nullable ResponseT previousResponse, TimedAttemptSettings nextAttemptSettings)

public boolean shouldRetry(@Nullable Throwable previousThrowable, @Nullable 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 @org.jspecify.annotations.Nullable java.lang.Throwable
previousResponse @org.jspecify.annotations.Nullable ResponseT
nextAttemptSettings TimedAttemptSettings
Returns
Type Description
boolean
Overrides
Exceptions
Type Description
CancellationException