java.lang.Object
io.smallrye.mutiny.groups.MultiRetry<T>
-
Constructor Summary
ConstructorsConstructorDescriptionMultiRetry(Multi<T> upstream, Predicate<? super Throwable> onFailurePredicate) -
Method Summary
Modifier and TypeMethodDescriptionatMost(long numberOfAttempts) expireAt(long expireAt) expireIn(long expireIn) when(Function<Multi<Throwable>, ? extends Flow.Publisher<?>> whenStreamFactory) Produces aMultiresubscribing to the currentMultiwhen theFlow.Publisherproduced by the given method emits an item.withBackOff(Duration initialBackOff) Configures a back-off delay between to attempt to re-subscribe.withBackOff(Duration initialBackOff, Duration maxBackOff) Configures a back-off delay between to attempt to re-subscribe.withExecutor(ScheduledExecutorService executor) Define a scheduled executor other thanInfrastructure.getDefaultWorkerPool()for the time-aware retry policies (e.g., {withBackOff(Duration)}.withJitter(double jitter) Configures the random factor when using back-off.
-
Constructor Details
-
MultiRetry
-
-
Method Details
-
withExecutor
Define a scheduled executor other thanInfrastructure.getDefaultWorkerPool()for the time-aware retry policies (e.g., {withBackOff(Duration)}.- Parameters:
executor- the scheduled executor, must not benull- Returns:
- this instance
-
indefinitely
Produces aMultiresubscribing to the currentMultiuntil it gets a items followed by a completion events.On every failure, it re-subscribes, indefinitely.
- Returns:
- the
Multi
-
atMost
-
expireAt
Produces aMultiresubscribing to the currentMultiuntilexpireAttime or until it gets items followed by the completion event. On every failure, it re-subscribes.If expiration time is passed, the last failure is propagated. Backoff must be configured.
- Parameters:
expireAt- absolute time in millis that specifies when to give up- Returns:
- a new
Multiretrying to subscribe to the currentMultiuntil it gets an item or until expirationexpireAt. When the expiration is reached, the last failure is propagated. - Throws:
IllegalArgumentException- if back off not configured,
-
expireIn
Produces aMultiresubscribing to the currentMultiuntilexpireIntime or until it gets items followed by the completion event. On every failure, it re-subscribes.If expiration time is passed, the last failure is propagated. Backoff must be configured.
- Parameters:
expireIn- relative time in millis that specifies when to give up- Returns:
- a new
Multiretrying to subscribe to the currentMultiuntil it gets an item or until expirationexpireIn. When the expiration is reached, the last failure is propagated. - Throws:
IllegalArgumentException- if back off not configured,
-
until
Produces aMultiresubscribing to the currentMultiuntil the given predicate returnsfalse. The predicate is called with the failure emitted by the currentMulti.- Parameters:
predicate- the predicate that determines if a re-subscription may happen in case of a specific failure, must not benull. If the predicate returnstruefor the given failure, a re-subscription is attempted.- Returns:
- the new
Multiinstance
-
when
@CheckReturnValue public Multi<T> when(Function<Multi<Throwable>, ? extends Flow.Publisher<?>> whenStreamFactory) Produces aMultiresubscribing to the currentMultiwhen theFlow.Publisherproduced by the given method emits an item. AsatMost(long), on every failure, it re-subscribes. However, a delay is introduced before re-subscribing. The re-subscription happens when the produced streams emits an item. If this stream fails, the downstream gets a failure. It the streams completes, the downstream completes. -
withBackOff
Configures a back-off delay between to attempt to re-subscribe. A random factor (jitter) is applied to increase the delay when several failures happen.- Parameters:
initialBackOff- the initial back-off duration, must not benull, must not be negative.- Returns:
- this object to configure the retry policy.
-
withBackOff
Configures a back-off delay between to attempt to re-subscribe. A random factor (jitter) is applied to increase he delay when several failures happen. The max delays ismaxBackOff.- Parameters:
initialBackOff- the initial back-off duration, must not benull, must not be negative.maxBackOff- the max back-off duration, must not benull, must not be negative.- Returns:
- this object to configure the retry policy.
-
withJitter
Configures the random factor when using back-off. By default, it's set to 0.5.- Parameters:
jitter- the jitter. Must be in [0.0, 1.0]- Returns:
- this object to configure the retry policy.
-