Search Results for

    Show / Hide Table of Contents

    Class RestartSink

    A RestartSink wraps a Sink that gets restarted when it completes or fails. They are useful for graphs that need to run for longer than the Sink can necessarily guarantee it will, for example, for Sink streams that depend on a remote server that may crash or become partitioned. The RestartSink ensures that the graph can continue running while the Sink restarts.

    Inheritance
    object
    RestartSink
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: Akka.Streams.Dsl
    Assembly: Akka.Streams.dll
    Syntax
    public static class RestartSink

    Methods

    | Edit this page View Source

    WithBackoff<T, TMat>(Func<Sink<T, TMat>>, RestartSettings)

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

    This Sink will never cancel, since cancellation by the wrapped Sink is always handled by restarting it. The wrapped Sink can however be completed by feeding a completion or error into this Sink. When that happens, the Sink, if currently running, will terminate and will not be restarted. This can be triggered simply by the upstream completing, or externally by introducing a IKillSwitch right before this Sink in the graph. The restart process is inherently lossy, since there is no coordination between cancelling and the sending of messages. When the wrapped Sink does cancel, this Sink will backpressure, however any elements already sent may have been lost.

    This uses the same exponential backoff algorithm as BackoffOptions.

    Declaration
    public static Sink<T, NotUsed> WithBackoff<T, TMat>(Func<Sink<T, TMat>> sinkFactory, RestartSettings settings)
    Parameters
    Type Name Description
    Func<Sink<T, TMat>> sinkFactory

    A factory for producing the Sink to wrap.

    RestartSettings settings

    RestartSettings defining restart configuration

    Returns
    Type Description
    Sink<T, NotUsed>
    Type Parameters
    Name Description
    T
    TMat
    | Edit this page View Source

    WithBackoff<T, TMat>(Func<Sink<T, TMat>>, TimeSpan, TimeSpan, double)

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

    This Sink will never cancel, since cancellation by the wrapped Sink is always handled by restarting it. The wrapped Sink can however be completed by feeding a completion or error into this Sink. When that happens, the Sink, if currently running, will terminate and will not be restarted. This can be triggered simply by the upstream completing, or externally by introducing a IKillSwitch right before this Sink in the graph. The restart process is inherently lossy, since there is no coordination between cancelling and the sending of messages. When the wrapped Sink does cancel, this Sink will backpressure, however any elements already sent may have been lost.

    This uses the same exponential backoff algorithm as BackoffOptions.

    Declaration
    [Obsolete("Use the overloaded method which accepts Akka.Stream.RestartSettings instead.")]
    public static Sink<T, NotUsed> WithBackoff<T, TMat>(Func<Sink<T, TMat>> sinkFactory, TimeSpan minBackoff, TimeSpan maxBackoff, double randomFactor)
    Parameters
    Type Name Description
    Func<Sink<T, TMat>> sinkFactory

    A factory for producing the Sink to wrap.

    TimeSpan minBackoff

    Minimum (initial) duration until the child actor will started again, if it is terminated

    TimeSpan maxBackoff

    The exponential back-off is capped to this duration

    double randomFactor

    After calculation of the exponential back-off an additional random delay based on this factor is added, e.g. 0.2 adds up to 20% delay. In order to skip this additional delay pass in 0.

    Returns
    Type Description
    Sink<T, NotUsed>
    Type Parameters
    Name Description
    T
    TMat
    | Edit this page View Source

    WithBackoff<T, TMat>(Func<Sink<T, TMat>>, TimeSpan, TimeSpan, double, int)

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

    This Sink will never cancel, since cancellation by the wrapped Sink is always handled by restarting it. The wrapped Sink can however be completed by feeding a completion or error into this Sink. When that happens, the Sink, if currently running, will terminate and will not be restarted. This can be triggered simply by the upstream completing, or externally by introducing a IKillSwitch right before this Sink in the graph. The restart process is inherently lossy, since there is no coordination between cancelling and the sending of messages. When the wrapped Sink does cancel, this Sink will backpressure, however any elements already sent may have been lost.

    This uses the same exponential backoff algorithm as BackoffOptions.

    Declaration
    [Obsolete("Use the overloaded method which accepts Akka.Stream.RestartSettings instead.")]
    public static Sink<T, NotUsed> WithBackoff<T, TMat>(Func<Sink<T, TMat>> sinkFactory, TimeSpan minBackoff, TimeSpan maxBackoff, double randomFactor, int maxRestarts)
    Parameters
    Type Name Description
    Func<Sink<T, TMat>> sinkFactory

    A factory for producing the Sink to wrap.

    TimeSpan minBackoff

    Minimum (initial) duration until the child actor will started again, if it is terminated

    TimeSpan maxBackoff

    The exponential back-off is capped to this duration

    double randomFactor

    After calculation of the exponential back-off an additional random delay based on this factor is added, e.g. 0.2 adds up to 20% delay. In order to skip this additional delay pass in 0.

    int maxRestarts

    The amount of restarts is capped to this amount within a time frame of minBackoff. Passing 0 will cause no restarts and a negative number will not cap the amount of restarts.

    Returns
    Type Description
    Sink<T, NotUsed>
    Type Parameters
    Name Description
    T
    TMat
    In this article
    • githubEdit this page
    • View Source
    Back to top
    Contribute
    • Project Chat
    • Discussion Forum
    • Source Code
    Support
    • Akka.NET Support Plans
    • Akka.NET Observability Tools
    • Akka.NET Training & Consulting
    Maintained By
    • Petabridge - The Akka.NET Company
    • Learn Akka.NET