object RetryFlow
- Source
- RetryFlow.scala
- Alphabetic
- By Inheritance
- RetryFlow
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @HotSpotIntrinsicCandidate()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
withBackoff[In, Out, Mat](minBackoff: FiniteDuration, maxBackoff: FiniteDuration, randomFactor: Double, maxRetries: Int, flow: Flow[In, Out, Mat])(decideRetry: (In, Out) ⇒ Option[In]): Flow[In, Out, Mat]
API may change!
API may change!
Allows retrying individual elements in the stream with an exponential backoff.
The retry condition is controlled by the
decideRetry
function. It takes the originally emitted element and the response emitted byflow
, and may return a request to be retried.The implementation of the
RetryFlow
requires thatflow
follows one-in-one-out semantics, the Flow may not filter elements, nor emit more than one element per incoming element. TheRetryFlow
will fail if two elements are emitted from theflow
, it will be stuck "forever" if nothing is emitted. Just one element will be emitted into theflow
at any time. Theflow
needs to emit an element before the next will be emitted to it.- 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
-
def
withBackoffAndContext[In, CtxIn, Out, CtxOut, Mat](minBackoff: FiniteDuration, maxBackoff: FiniteDuration, randomFactor: Double, maxRetries: Int, flow: FlowWithContext[In, CtxIn, Out, CtxOut, Mat])(decideRetry: ((In, CtxIn), (Out, CtxOut)) ⇒ Option[(In, CtxIn)]): FlowWithContext[In, CtxIn, Out, CtxOut, Mat]
API may change!
API may change!
Allows retrying individual elements in the stream with an exponential backoff.
The retry condition is controlled by the
decideRetry
function. 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
RetryFlow
requires thatflow
follows one-in-one-out semantics, the FlowWithContext may not filter elements, nor emit more than one element per incoming element. TheRetryFlow
will fail if two elements are emitted from theflow
, it will be stuck "forever" if nothing is emitted. Just one element will be emitted into theflow
at any time. Theflow
needs to emit an element before the next will be emitted to it.The wrapped
flow
anddecideRetry
take the additional context parameters which can be a context, or used to control retrying with other information.- 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