Class RestartSource
- java.lang.Object
-
- akka.stream.scaladsl.RestartSource
-
public class RestartSource extends java.lang.ObjectA RestartSource wraps aSourcethat gets restarted when it completes or fails.They are useful for graphs that need to run for longer than the
Sourcecan necessarily guarantee it will, for example, forSourcestreams that depend on a remote server that may crash or become partitioned. The RestartSource ensures that the graph can continue running while theSourcerestarts.
-
-
Constructor Summary
Constructors Constructor Description RestartSource()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <T> Source<T,NotUsed>onFailuresWithBackoff(RestartSettings settings, scala.Function0<Source<T,?>> sourceFactory)static <T> Source<T,NotUsed>withBackoff(RestartSettings settings, scala.Function0<Source<T,?>> sourceFactory)
-
-
-
Method Detail
-
withBackoff
public static <T> Source<T,NotUsed> withBackoff(RestartSettings settings, scala.Function0<Source<T,?>> sourceFactory)
Wrap the givenSourcewith aSourcethat will restart it when it fails or complete using an exponential backoff.This
Sourcewill not emit a complete or failure as long as maxRestarts is not reached, since the completion or failure of the wrappedSourceis handled by restarting it. The wrappedSourcecan however be cancelled by cancelling thisSource. When that happens, the wrappedSource, if currently running will be cancelled, and it will not be restarted. This can be triggered simply by the downstream cancelling, or externally by introducing aKillSwitchright after thisSourcein the graph.This uses the same exponential backoff algorithm as
BackoffOpts.- Parameters:
settings-RestartSettingsdefining restart configurationsourceFactory- A factory for producing theSourceto wrap.
-
onFailuresWithBackoff
public static <T> Source<T,NotUsed> onFailuresWithBackoff(RestartSettings settings, scala.Function0<Source<T,?>> sourceFactory)
Wrap the givenSourcewith aSourcethat will restart it when it fails using an exponential backoff.This
Sourcewill not emit a failure as long as maxRestarts is not reached, since failure of the wrappedSourceis handled by restarting it. The wrappedSourcecan be cancelled by cancelling thisSource. When that happens, the wrappedSource, if currently running will be cancelled, and it will not be restarted. This can be triggered simply by the downstream cancelling, or externally by introducing aKillSwitchright after thisSourcein the graph.This uses the same exponential backoff algorithm as
BackoffOpts.- Parameters:
settings-RestartSettingsdefining restart configurationsourceFactory- A factory for producing theSourceto wrap.
-
-