Interface RetryStrategy

All Known Implementing Classes:
RetryStrategy.AdaptiveExponential, RetryStrategy.ConstantInterval, RetryStrategy.NoRetries$, RetryStrategy.Repeat, RetryStrategy.SoftTimeout, RetryStrategy.StickyCeiling

public interface RetryStrategy
A strategy for determine whether and when to retry an operation
  • Method Details

    • apply

      scala.util.Either<String,scala.Tuple2<scala.concurrent.duration.FiniteDuration,RetryStrategy>> apply(scala.concurrent.duration.FiniteDuration attemptDuration)
      Decides whether and when to retry an operation, given the duration of the most recent attempt.

      Why is this signature so complex, you ask? To be able to express both limits on retrying, and to support the logic of RetryStrategy.AdaptiveExponential.

      Parameters:
      attemptDuration - duration of the most recent attempt
      Returns:
      a Left containing the reason for not retrying the request if the operation should not be retried, or a Right containing the minimum interval between the start of the most recent attempt and the start of the retry together with the RetryStrategy to use if this retry fails.