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, Creator<Source<T, ?>> sourceFactory) withBackoff
(RestartSettings settings, Creator<Source<T, ?>> sourceFactory)
-
Constructor Details
-
RestartSource
public RestartSource()
-
-
Method Details
-
withBackoff
public static <T> Source<T,NotUsed> withBackoff(RestartSettings settings, Creator<Source<T, ?>> sourceFactory) Wrap the givenSource
with aSource
that will restart it when it fails or complete using an exponential backoff.This
Source
will not emit a complete or failure as long as maxRestarts is not reached, since the completion or failure of the wrappedSource
is handled by restarting it. The wrappedSource
can 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 aKillSwitch
right after thisSource
in the graph.This uses the same exponential backoff algorithm as
pekko.pattern.BackoffOpts
.- Parameters:
settings
-RestartSettings
defining restart configurationsourceFactory
- A factory for producing theSource
to wrap.
-
onFailuresWithBackoff
public static <T> Source<T,NotUsed> onFailuresWithBackoff(RestartSettings settings, Creator<Source<T, ?>> sourceFactory) Wrap the givenSource
with aSource
that will restart it when it fails using an exponential backoff.This
Source
will not emit a failure as long as maxRestarts is not reached, since failure of the wrappedSource
is handled by restarting it. The wrappedSource
can 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 aKillSwitch
right after thisSource
in the graph.This uses the same exponential backoff algorithm as
pekko.pattern.BackoffOpts
.- Parameters:
settings
-RestartSettings
defining restart configurationsourceFactory
- A factory for producing theSource
to wrap.
-