public abstract class Retry extends Object
Flux of Retry.RetrySignal,
 for use with Flux.retryWhen(Retry) and Mono.retryWhen(Retry).
 Also provides access to configurable built-in strategies via static factory methods:
 
 
 Users are encouraged to provide either concrete custom Retry strategies or builders that produce
 such concrete Retry. The RetrySpec returned by eg. max(long) is a good inspiration
 for a fluent approach that generates a Retry at each step and uses immutability/copy-on-write to enable
 sharing of intermediate steps (that can thus be considered templates).
| Modifier and Type | Class and Description | 
|---|---|
static interface  | 
Retry.RetrySignal
State for a  
Flux.retryWhen(Retry) Flux retry} or Mono retry. | 
| Constructor and Description | 
|---|
Retry()  | 
| Modifier and Type | Method and Description | 
|---|---|
static RetryBackoffSpec | 
backoff(long maxAttempts,
       Duration minBackoff)
A  
RetryBackoffSpec preconfigured for exponential backoff strategy with jitter, given a maximum number of retry attempts
 and a minimum Duration for the backoff. | 
static RetryBackoffSpec | 
fixedDelay(long maxAttempts,
          Duration fixedDelay)
A  
RetryBackoffSpec preconfigured for fixed delays (min backoff equals max backoff, no jitter), given a maximum number of retry attempts
 and the fixed Duration for the backoff. | 
static Retry | 
from(Function<Flux<Retry.RetrySignal>,? extends Publisher<?>> function)
 | 
abstract Publisher<?> | 
generateCompanion(Flux<Retry.RetrySignal> retrySignals)
The intent of the functional  
Retry class is to let users configure how to react to Retry.RetrySignal
 by providing the operator with a companion publisher. | 
static RetrySpec | 
indefinitely()
A  
RetrySpec preconfigured for the most simplistic retry strategy: retry immediately and indefinitely
 (similar to Flux.retry()). | 
static RetrySpec | 
max(long max)
A  
RetrySpec preconfigured for a simple strategy with maximum number of retry attempts. | 
static RetrySpec | 
maxInARow(long maxInARow)
A  
RetrySpec preconfigured for a simple strategy with maximum number of retry attempts over
 subsequent transient errors. | 
static Retry | 
withThrowable(Function<Flux<Throwable>,? extends Publisher<?>> function)
 | 
public static RetryBackoffSpec backoff(long maxAttempts, Duration minBackoff)
RetryBackoffSpec preconfigured for exponential backoff strategy with jitter, given a maximum number of retry attempts
 and a minimum Duration for the backoff.
 
 
maxAttempts - the maximum number of retry attempts to allowminBackoff - the minimum Duration for the first backoffRetryBackoffSpec.maxAttempts(long), 
RetryBackoffSpec.minBackoff(Duration)public static RetryBackoffSpec fixedDelay(long maxAttempts, Duration fixedDelay)
RetryBackoffSpec preconfigured for fixed delays (min backoff equals max backoff, no jitter), given a maximum number of retry attempts
 and the fixed Duration for the backoff.
 
 
 
 Note that calling RetryBackoffSpec.minBackoff(Duration) or RetryBackoffSpec.maxBackoff(Duration) would switch
 back to an exponential backoff strategy.
maxAttempts - the maximum number of retry attempts to allowfixedDelay - the Duration of the fixed delaysRetryBackoffSpec.maxAttempts(long), 
RetryBackoffSpec.minBackoff(Duration), 
RetryBackoffSpec.maxBackoff(Duration)public static final Retry from(Function<Flux<Retry.RetrySignal>,? extends Publisher<?>> function)
public abstract Publisher<?> generateCompanion(Flux<Retry.RetrySignal> retrySignals)
Retry class is to let users configure how to react to Retry.RetrySignal
 by providing the operator with a companion publisher. Any onNext
 emitted by this publisher will trigger a retry, but if that emission is delayed compared to the original signal then
 the attempt is delayed as well. This method generates the companion, out of a Flux of Retry.RetrySignal,
 which itself can serve as the simplest form of retry companion (indefinitely and immediately retry on any error).retrySignals - the original Flux of Retry.RetrySignal, notifying of each source error that
 might result in a retry attempt, with context around the error and current retry cycle.public static RetrySpec indefinitely()
RetrySpec preconfigured for the most simplistic retry strategy: retry immediately and indefinitely
 (similar to Flux.retry()).public static RetrySpec max(long max)
RetrySpec preconfigured for a simple strategy with maximum number of retry attempts.
 
 
max - the maximum number of retry attempts to allowRetrySpec.maxAttempts(long)public static RetrySpec maxInARow(long maxInARow)
RetrySpec preconfigured for a simple strategy with maximum number of retry attempts over
 subsequent transient errors. An Subscriber.onNext(Object) between
 errors resets the counter (see RetrySpec.transientErrors(boolean)).
 
 
maxInARow - the maximum number of retry attempts to allow in a row, reset by successful onNextRetrySpec.maxAttempts(long), 
RetrySpec.transientErrors(boolean)