Class RepeatStrategies

java.lang.Object
io.servicetalk.concurrent.api.RepeatStrategies

public final class RepeatStrategies extends Object
A set of strategies to use for repeating with Publisher.repeatWhen(IntFunction), Single.repeatWhen(IntFunction) and Completable.repeatWhen(IntFunction) or in general.
  • Method Details

    • repeatWithConstantBackoffFullJitter

      public static IntFunction<Completable> repeatWithConstantBackoffFullJitter(Duration delay, Executor timerExecutor)
      Creates a new repeat function that adds the passed constant Duration as delay between repeats.
      Parameters:
      delay - Constant Duration of delay between repeats.
      timerExecutor - Executor to be used to schedule timers for delay.
      Returns:
      An IntFunction to be used for repeats which given a repeat count returns a Completable that terminates successfully when the source has to be repeated or terminates with error if the source should not be repeated.
    • repeatWithConstantBackoffFullJitter

      public static IntFunction<Completable> repeatWithConstantBackoffFullJitter(int maxRepeats, Duration delay, Executor timerExecutor)
      Creates a new repeat function that adds the passed constant Duration as delay between repeats.
      Parameters:
      maxRepeats - Maximum number of allowed repeats, after which the returned IntFunction will return a failed Completable with RepeatStrategies.TerminateRepeatException as the cause.
      delay - Constant Duration of delay between repeats.
      timerExecutor - Executor to be used to schedule timers for delay.
      Returns:
      An IntFunction to be used for repeats which given a repeat count returns a Completable that terminates successfully when the source has to be repeated or terminates with error if the source should not be repeated.
    • repeatWithConstantBackoffDeltaJitter

      public static IntFunction<Completable> repeatWithConstantBackoffDeltaJitter(Duration delay, Duration jitter, Executor timerExecutor)
      Creates a new repeat function that adds the passed constant Duration as delay between repeats.
      Parameters:
      delay - Constant Duration of delay between repeats.
      jitter - The jitter to apply to delay on each repeat.
      timerExecutor - Executor to be used to schedule timers for delay.
      Returns:
      An IntFunction to be used for repeats which given a repeat count returns a Completable that terminates successfully when the source has to be repeated or terminates with error if the source should not be repeated.
    • repeatWithConstantBackoffDeltaJitter

      public static IntFunction<Completable> repeatWithConstantBackoffDeltaJitter(int maxRepeats, Duration delay, Duration jitter, Executor timerExecutor)
      Creates a new repeat function that adds the passed constant Duration as delay between repeats.
      Parameters:
      maxRepeats - Maximum number of allowed repeats, after which the returned IntFunction will return a failed Completable with RepeatStrategies.TerminateRepeatException as the cause.
      delay - Constant Duration of delay between repeats.
      jitter - The jitter to apply to delay on each repeat.
      timerExecutor - Executor to be used to schedule timers for delay.
      Returns:
      An IntFunction to be used for repeats which given a repeat count returns a Completable that terminates successfully when the source has to be repeated or terminates with error if the source should not be repeated.
    • repeatWithExponentialBackoffFullJitter

      public static IntFunction<Completable> repeatWithExponentialBackoffFullJitter(Duration initialDelay, Duration maxDelay, Executor timerExecutor)
      Creates a new repeat function that adds a delay between repeats. For first repeat, the delay is initialDelay which is increased exponentially for subsequent repeats. This additionally adds a "Full Jitter" for the backoff as described here.
      Parameters:
      initialDelay - Delay Duration for the first repeat and increased exponentially with each repeat.
      maxDelay - The maximum amount of delay that will be introduced.
      timerExecutor - Executor to be used to schedule timers for backoff.
      Returns:
      An IntFunction to be used for repeats which given a repeat count returns a Completable that terminates successfully when the source has to be repeated or terminates with error if the source should not be repeated.
    • repeatWithExponentialBackoffFullJitter

      public static IntFunction<Completable> repeatWithExponentialBackoffFullJitter(int maxRepeats, Duration initialDelay, Duration maxDelay, Executor timerExecutor)
      Creates a new repeat function that adds a delay between repeats. For first repeat, the delay is initialDelay which is increased exponentially for subsequent repeats. This additionally adds a "Full Jitter" for the backoff as described here.
      Parameters:
      maxRepeats - Maximum number of allowed repeats, after which the returned IntFunction will return a failed Completable with RepeatStrategies.TerminateRepeatException as the cause.
      initialDelay - Delay Duration for the first repeat and increased exponentially with each repeat.
      maxDelay - The maximum amount of delay that will be introduced.
      timerExecutor - Executor to be used to schedule timers for backoff.
      Returns:
      An IntFunction to be used for repeats which given a repeat count returns a Completable that terminates successfully when the source has to be repeated or terminates with error if the source should not be repeated.
    • repeatWithExponentialBackoffDeltaJitter

      public static IntFunction<Completable> repeatWithExponentialBackoffDeltaJitter(Duration initialDelay, Duration jitter, Duration maxDelay, Executor timerExecutor)
      Creates a new repeat function that adds a delay between repeats. For first repeat, the delay is initialDelay which is increased exponentially for subsequent repeats.
      Parameters:
      initialDelay - Delay Duration for the first repeat and increased exponentially with each repeat.
      jitter - The jitter to apply to initialDelay on each repeat.
      maxDelay - The maximum amount of delay that will be introduced.
      timerExecutor - Executor to be used to schedule timers for backoff.
      Returns:
      An IntFunction to be used for repeats which given a repeat count returns a Completable that terminates successfully when the source has to be repeated or terminates with error if the source should not be repeated.
    • repeatWithExponentialBackoffDeltaJitter

      public static IntFunction<Completable> repeatWithExponentialBackoffDeltaJitter(int maxRepeats, Duration initialDelay, Duration jitter, Duration maxDelay, Executor timerExecutor)
      Creates a new repeat function that adds a delay between repeats. For first repeat, the delay is initialDelay which is increased exponentially for subsequent repeats.
      Parameters:
      maxRepeats - Maximum number of allowed repeats, after which the returned IntFunction will return a failed Completable with RepeatStrategies.TerminateRepeatException as the cause.
      initialDelay - Delay Duration for the first repeat and increased exponentially with each repeat.
      jitter - The jitter to apply to initialDelay on each repeat.
      maxDelay - The maximum amount of delay that will be introduced.
      timerExecutor - Executor to be used to schedule timers for backoff.
      Returns:
      An IntFunction to be used for repeats which given a repeat count returns a Completable that terminates successfully when the source has to be repeated or terminates with error if the source should not be repeated.