Interface ResultRetryAlgorithmWithContext<ResponseT>

  • Type Parameters:
    ResponseT - response type
    All Superinterfaces:
    ResultRetryAlgorithm<ResponseT>
    All Known Implementing Classes:
    BasicResultRetryAlgorithm

    public interface ResultRetryAlgorithmWithContext<ResponseT>
    extends ResultRetryAlgorithm<ResponseT>
    A result retry algorithm is responsible for the following operations (based on the response returned by the previous attempt or on the thrown exception):
    1. Accepting a task for retry so another attempt will be made.
    2. Canceling retrying process so the related Future will be canceled.
    3. Creating TimedAttemptSettings for each subsequent retry attempt.
    Implementations of this interface receive a RetryingContext that can contain specific RetrySettings and retryable codes that should be used to determine the retry behavior.

    Implementations of this interface must be thread-safe.

    • Method Detail

      • createNextAttempt

        TimedAttemptSettings createNextAttempt​(RetryingContext context,
                                               Throwable previousThrowable,
                                               ResponseT previousResponse,
                                               TimedAttemptSettings previousSettings)
        Creates a next attempt TimedAttemptSettings.
        Parameters:
        context - the retrying context of this invocation that can be used to determine the settings for the next attempt.
        previousThrowable - exception thrown by the previous attempt (null, if none)
        previousResponse - response returned by the previous attempt
        previousSettings - previous attempt settings
      • shouldRetry

        boolean shouldRetry​(RetryingContext context,
                            Throwable previousThrowable,
                            ResponseT previousResponse)
                     throws CancellationException
        Returns true if another attempt should be made, or false otherwise.
        Parameters:
        context - the retrying context of this invocation that can be used to determine whether the call should be retried.
        previousThrowable - exception thrown by the previous attempt (null, if none)
        previousResponse - response returned by the previous attempt.
        Throws:
        CancellationException