Class ExponentialDelayWithHalfJitter

  • All Implemented Interfaces:
    BackoffStrategy

    public final class ExponentialDelayWithHalfJitter
    extends Object
    implements BackoffStrategy
    Strategy that waits for a random period of time between a lower bound x and an exponentially increasing amount of time between each subsequent attempt of the same call. The lower bound x is half the amount of the computed exponential delay.

    Specifically, the first attempt waits 0ms, and each subsequent attempt waits between min(maxDelay, baseDelay * (1 << (attempt - 2))) / 2 and min(maxDelay, baseDelay * (1 << (attempt - 2))).

    This is in contrast to ExponentialDelayWithJitter where the final computed delay before the next retry will be between 0 and the computed exponential delay.

    • Constructor Detail

    • Method Detail

      • computeDelay

        public Duration computeDelay​(int attempt)
        Description copied from interface: BackoffStrategy
        Compute the amount of time to wait before the provided attempt number is executed.
        Specified by:
        computeDelay in interface BackoffStrategy
        Parameters:
        attempt - The attempt to compute the delay for, starting at one.