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 #StreamingRetryAlgorithm(ResultRetryAlgorithmWithContext, TimedRetryAlgorithmWithContext) to create an instance that will respect the RetryingContext.
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.
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.
Name | Description |
context | RetryingContext |
previousThrowable | Throwable |
previousResponse | ResponseT |
previousSettings | TimedAttemptSettings |
Type | Description |
TimedAttemptSettings |
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.
Name | Description |
previousThrowable | Throwable |
previousResponse | ResponseT |
previousSettings | TimedAttemptSettings |
Type | Description |
TimedAttemptSettings |
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.
Name | Description |
context | RetryingContext |
previousThrowable | Throwable |
previousResponse | ResponseT |
nextAttemptSettings | TimedAttemptSettings |
Type | Description |
boolean |
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.
Name | Description |
previousThrowable | Throwable |
previousResponse | ResponseT |
nextAttemptSettings | TimedAttemptSettings |
Type | Description |
boolean |
Type | Description |
CancellationException |