Class RestartSource
Source that gets restarted when it completes or fails.
They are useful for graphs that need to run for longer than the Source can necessarily guarantee it will, for
example, for Source streams that depend on a remote server that may crash or become partitioned. The
RestartSource ensures that the graph can continue running while the Source restarts.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiononFailuresWithBackoff(RestartSettings settings, scala.Function0<Source<T, ?>> sourceFactory) withBackoff(RestartSettings settings, scala.Function0<Source<T, ?>> sourceFactory)
-
Constructor Details
-
RestartSource
public RestartSource()
-
-
Method Details
-
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
pekko.pattern.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
pekko.pattern.BackoffOpts.- Parameters:
settings-RestartSettingsdefining restart configurationsourceFactory- A factory for producing theSourceto wrap.
-