Class RetryFlow$
- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final RetryFlow$Static reference to the singleton instance of this Scala object.
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescription<In,Out, Mat> 
 Flow<In,Out, Mat> withBackoff(scala.concurrent.duration.FiniteDuration minBackoff, scala.concurrent.duration.FiniteDuration maxBackoff, double randomFactor, int maxRetries, Flow<In, Out, Mat> flow, scala.Function2<In, Out, scala.Option<In>> decideRetry) API may change!<In,CtxIn, Out, CtxOut, Mat> 
 FlowWithContext<In,CtxIn, Out, CtxOut, Mat> withBackoffAndContext(scala.concurrent.duration.FiniteDuration minBackoff, scala.concurrent.duration.FiniteDuration maxBackoff, double randomFactor, int maxRetries, FlowWithContext<In, CtxIn, Out, CtxOut, Mat> flow, scala.Function2<scala.Tuple2<In, CtxIn>, scala.Tuple2<Out, CtxOut>, scala.Option<scala.Tuple2<In, CtxIn>>> decideRetry) API may change!
- 
Field Details- 
MODULE$Static reference to the singleton instance of this Scala object.
 
- 
- 
Constructor Details- 
RetryFlow$public RetryFlow$()
 
- 
- 
Method Details- 
withBackoffpublic <In,Out, Flow<In,Mat> Out, withBackoffMat> (scala.concurrent.duration.FiniteDuration minBackoff, scala.concurrent.duration.FiniteDuration maxBackoff, double randomFactor, int maxRetries, Flow<In, Out, Mat> flow, scala.Function2<In, Out, scala.Option<In>> decideRetry) API may change!Allows retrying individual elements in the stream with an exponential backoff. The retry condition is controlled by the decideRetryfunction. It takes the originally emitted element and the response emitted byflow, and may return a request to be retried.The implementation of the RetryFlowrequires thatflowfollows strict first-in-first-out and one-in-one-out semantics, i.e., theFlowmay neither filter elements, nor emit more than one element per incoming element. TheRetryFlowwill fail if two elements are emitted for one incoming element. Any sort of batching, grouping, or filtering will make it hang forever.Just one element will be emitted into the flowat any time. Let's say the flow is handling an element, either first-time executing some calculation, or retrying. The next element won't be emitted into the flow until the current element has been finished processing. By finished, it means either succeed the very first attempt, succeed after a few attempts, or get dropped after using upmaxRetriesretries.- Parameters:
- minBackoff- minimum duration to backoff between issuing retries
- maxBackoff- maximum duration to backoff between issuing retries
- randomFactor- adds jitter to the retry delay. Use 0 for no jitter
- maxRetries- total number of allowed retries, when reached the last result will be emitted even if unsuccessful
- flow- a flow to retry elements from
- decideRetry- retry condition decision function
 
- 
withBackoffAndContextpublic <In,CtxIn, FlowWithContext<In,Out, CtxOut, Mat> CtxIn, withBackoffAndContextOut, CtxOut, Mat> (scala.concurrent.duration.FiniteDuration minBackoff, scala.concurrent.duration.FiniteDuration maxBackoff, double randomFactor, int maxRetries, FlowWithContext<In, CtxIn, Out, CtxOut, Mat> flow, scala.Function2<scala.Tuple2<In, CtxIn>, scala.Tuple2<Out, CtxOut>, scala.Option<scala.Tuple2<In, CtxIn>>> decideRetry) API may change!Allows retrying individual elements in the stream with an exponential backoff. The retry condition is controlled by the decideRetryfunction. It takes the originally emitted element with its context, and the response emitted byflow, and may return a request to be retried.The implementation of the RetryFlowrequires thatflowfollows one-in-one-out semantics, theFlowWithContextmay not filter elements, nor emit more than one element per incoming element. TheRetryFlowwill fail if two elements are emitted from theflow, it will be stuck "forever" if nothing is emitted. Just one element will be emitted into theflowat any time. Theflowneeds to emit an element before the next will be emitted to it.The wrapped flowanddecideRetrytake the additional context parameters which can be a context, or used to control retrying with other information.- Parameters:
- minBackoff- minimum duration to backoff between issuing retries
- maxBackoff- maximum duration to backoff between issuing retries
- randomFactor- adds jitter to the retry delay. Use 0 for no jitter
- maxRetries- total number of allowed retries, when reached the last result will be emitted even if unsuccessful
- flow- a flow with context to retry elements from
- decideRetry- retry condition decision function
 
 
-