RestartSource.withBackoff

Wrap the given SourceSource with a SourceSource that will restart it when it fails or completes using an exponential backoff.

Error handling

Signature

RestartSource.withBackoffRestartSource.withBackoff

Description

Wrap the given SourceSource with a SourceSource that will restart it when it completes or fails using exponential backoff. The backoff resets back to minBackoff if there hasn’t been a restart within maxRestartsWithin (which defaults to minBackoff).

This SourceSource will not emit a complete or fail as long as maxRestarts is not reached, since the completion or failure of the wrapped SourceSource is handled by restarting it. The wrapped SourceSource can however be cancelled by cancelling this SourceSource. When that happens, the wrapped SourceSource, 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 a KillSwitch right after this SourceSource in the graph.

This uses the same exponential backoff algorithm as BackoffOptsBackoffOpts.

See also:

Reactive Streams semantics

emits when the wrapped source emits

backpressures during backoff and when downstream backpressures

completes when maxRestarts are reached within the given time limit

cancels when downstream cancels