RestartSource.withBackoff
Wrap the given SourceSource with a SourceSource that will restart it when it fails or completes using an exponential backoff.
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:
- RestartSource.onFailuresWithBackoff
- RestartFlow.onFailuresWithBackoff
- RestartFlow.withBackoff
- RestartSink.withBackoff
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