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.
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 |
|
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 |
|
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 |
|
| 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 |
|
| Exceptions | |
|---|---|
| Type | Description |
CancellationException |
|