Class RestartSourceWithContext
- java.lang.Object
-
- akka.stream.scaladsl.RestartSourceWithContext
-
public class RestartSourceWithContext extends java.lang.Object
A RestartSourceWithContext wraps aSourceWithContext
that gets restarted when it completes or fails.They are useful for graphs that need to run for longer than the
SourceWithContext
can necessarily guarantee it will, e.g. forSourceWithContext
streams that depend on a remote service to which connectivity may be lost (crash or partition). The RestartSourceWithContext ensures that the graph can continue running while theSourceWithContext
restarts.
-
-
Constructor Summary
Constructors Constructor Description RestartSourceWithContext()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <T,C>
SourceWithContext<T,C,NotUsed>onFailuresWithBackoff(RestartSettings settings, scala.Function0<SourceWithContext<T,C,?>> sourceFactory)
Wrap the givenSourceWithContext
with aSourceWithContext
that will restart it when it fails using an exponential backoff.static <T,C>
SourceWithContext<T,C,NotUsed>withBackoff(RestartSettings settings, scala.Function0<SourceWithContext<T,C,?>> sourceFactory)
Wrap the givenSourceWithContext
with aSourceWithContext
that will restart it when it fails or completes using an exponential backoff.
-
-
-
Method Detail
-
withBackoff
public static <T,C> SourceWithContext<T,C,NotUsed> withBackoff(RestartSettings settings, scala.Function0<SourceWithContext<T,C,?>> sourceFactory)
Wrap the givenSourceWithContext
with aSourceWithContext
that will restart it when it fails or completes using an exponential backoff.The returned
SourceWithContext
will not emit a complete or failure as long as maxRestarts is not reached, since the completion or failure of the wrappedSourceWithContext
is handled by restarting it. The wrappedSourceWithContext
can however be canceled by canceling the returnedSourceWithContext
. When that happens, the wrappedSourceWithContext
if currently running will be canceled and will not be restarted.- Parameters:
settings
-RestartSettings
defining restart configurationsourceFactory
- A factory for producing theSourceWithContext
to wrap
-
onFailuresWithBackoff
public static <T,C> SourceWithContext<T,C,NotUsed> onFailuresWithBackoff(RestartSettings settings, scala.Function0<SourceWithContext<T,C,?>> sourceFactory)
Wrap the givenSourceWithContext
with aSourceWithContext
that will restart it when it fails using an exponential backoff.The returned
SourceWithContext
will not emit a failure as long as maxRestarts is not reached, since the failure of the wrappedSourceWithContext
is handled by restarting it. The wrappedSourceWithContext
can however be canceled by canceling the returnedSourceWithContext
. When that happens, the wrappedSourceWithContext
if currently running will be canceled and will not be restarted.- Parameters:
settings
-RestartSettings
defining restart configurationsourceFactory
- A factory for producing theSourceWithContext
to wrap
-
-