Interface RetryPolicy

All Known Implementing Classes:
RetryPolicies.MultipleLinearRandomRetry

@Evolving public interface RetryPolicy

Specifies a policy for retrying method failures. Implementations of this interface should be immutable.

  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Interface
    Description
    static class 
  • Method Summary

    Modifier and Type
    Method
    Description
    shouldRetry(Exception e, int retries, int failovers, boolean isIdempotentOrAtMostOnce)
    Determines whether the framework should retry a method for the given exception, and the number of retries that have been made for that operation so far.
  • Method Details

    • shouldRetry

      RetryPolicy.RetryAction shouldRetry(Exception e, int retries, int failovers, boolean isIdempotentOrAtMostOnce) throws Exception

      Determines whether the framework should retry a method for the given exception, and the number of retries that have been made for that operation so far.

      Parameters:
      e - The exception that caused the method to fail
      retries - The number of times the method has been retried
      failovers - The number of times the method has failed over to a different backend implementation
      isIdempotentOrAtMostOnce - true if the method is Idempotent or AtMostOnce and so can reasonably be retried on failover when we don't know if the previous attempt reached the server or not
      Returns:
      RetryPolicy.RetryAction with RetryDecision.FAIL if the method should not be retried, RetryDecision.RETRY if the method should be retried or RetryDecision.FAILOVER_AND_RETRY if failover has to be performed before retry.
      Throws:
      Exception - The re-thrown exception e indicating that the method failed and should not be retried further