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.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final RestartSource$Static reference to the singleton instance of this Scala object. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiononFailuresWithBackoff(RestartSettings settings, Creator<Source<T, ?>> sourceFactory) withBackoff(RestartSettings settings, Creator<Source<T, ?>> sourceFactory)
-
Field Details
-
MODULE$
Static reference to the singleton instance of this Scala object.
-
-
Constructor Details
-
RestartSource$
public RestartSource$()
-
-
Method Details
-
withBackoff
public <T> Source<T,NotUsed> withBackoff(RestartSettings settings, Creator<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 <T> Source<T,NotUsed> onFailuresWithBackoff(RestartSettings settings, Creator<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.
-