Class Retry.DelayingRetryPolicy

java.lang.Object
io.helidon.faulttolerance.Retry.DelayingRetryPolicy
All Implemented Interfaces:
Retry.RetryPolicy
Enclosing interface:
Retry

public static class Retry.DelayingRetryPolicy extends Object implements Retry.RetryPolicy
A retry policy that prolongs the delays between retries by a defined factor.

Consider the following setup:

  • calls = 4
  • delayMillis = 100
  • factor = 2.0
The following delays will be used for each call:
  • Initial call - always immediate (not handled by retry policy)
  • First retry - 100 millis
  • Second retry - 200 millis (previous delay * factor)
  • Third retry - 400 millis (previous delay * factor)
  • Method Details

    • builder

      public static Retry.DelayingRetryPolicy.Builder builder()
      A builder to customize configuration of Retry.DelayingRetryPolicy.
      Returns:
      a new builder
    • noDelay

      public static Retry.DelayingRetryPolicy noDelay(int calls)
      Create a retry policy with no delays and with the specified number of calls.
      Parameters:
      calls - number of calls to execute (retries + initial call)
      Returns:
      a no delay retry policy
    • nextDelayMillis

      public Optional<Long> nextDelayMillis(long firstCallMillis, long lastDelay, int call)
      Description copied from interface: Retry.RetryPolicy
      Return next delay in milliseconds, or an empty optional to finish retries.
      Specified by:
      nextDelayMillis in interface Retry.RetryPolicy
      Parameters:
      firstCallMillis - milliseconds recorded before the first call using System.currentTimeMillis()
      lastDelay - last delay that was used (0 for the first failed call)
      call - call index (0 for the first failed call)
      Returns:
      how long to wait before trying again, or empty to notify this is the end of retries