Search Results for

    Show / Hide Table of Contents

    Class RestartSource

    A RestartSource wraps a 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.

    Inheritance
    object
    RestartSource
    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 RestartSource

    Methods

    | Edit this page View Source

    OnFailuresWithBackoff<T, TMat>(Func<Source<T, TMat>>, RestartSettings)

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

    This Source will never emit a failure, since the failure of the wrapped Source is always handled by restarting. The wrapped Source can be cancelled by cancelling this Source. When that happens, the wrapped Source, 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 IKillSwitch right after this Source in the graph.

    This uses the same exponential backoff algorithm as BackoffOptions.

    Declaration
    public static Source<T, NotUsed> OnFailuresWithBackoff<T, TMat>(Func<Source<T, TMat>> sourceFactory, RestartSettings settings)
    Parameters
    Type Name Description
    Func<Source<T, TMat>> sourceFactory

    A factory for producing the Source to wrap.

    RestartSettings settings

    RestartSettings defining restart configuration

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

    OnFailuresWithBackoff<T, TMat>(Func<Source<T, TMat>>, TimeSpan, TimeSpan, double)

    Wrap the given Source with a Source that will restart it when it fails using an exponential backoff. This Source will never emit a failure, since the failure of the wrapped Source is always handled by restarting. The wrapped Source can be cancelled by cancelling this Source. When that happens, the wrapped Source, 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 IKillSwitch right after this Source in the graph. This uses the same exponential backoff algorithm as BackoffOptions.

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

    A factory for producing the Source 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
    Source<T, NotUsed>
    Type Parameters
    Name Description
    T
    TMat
    | Edit this page View Source

    OnFailuresWithBackoff<T, TMat>(Func<Source<T, TMat>>, TimeSpan, TimeSpan, double, int)

    Wrap the given Source with a Source that will restart it when it fails using an exponential backoff. This Source will never emit a failure, since the failure of the wrapped Source is always handled by restarting. The wrapped Source can be cancelled by cancelling this Source. When that happens, the wrapped Source, 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 IKillSwitch right after this Source in the graph. This uses the same exponential backoff algorithm as BackoffOptions.

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

    A factory for producing the Source 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
    Source<T, NotUsed>
    Type Parameters
    Name Description
    T
    TMat
    | Edit this page View Source

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

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

    This Source will never emit a complete or failure, since the completion or failure of the wrapped Source is always handled by restarting it. The wrapped Source can however be cancelled by cancelling this Source. When that happens, the wrapped Source, 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 IKillSwitch right after this Source in the graph.

    This uses the same exponential backoff algorithm as BackoffOptions.

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

    A factory for producing the Source to wrap.

    RestartSettings settings

    RestartSettings defining restart configuration

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

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

    Wrap the given Source with a Source that will restart it when it fails or complete using an exponential backoff. This Source will never emit a complete or failure, since the completion or failure of the wrapped Source is always handled by restarting it. The wrapped Source can however be cancelled by cancelling this Source. When that happens, the wrapped Source, 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 IKillSwitch right after this Source in the graph. This uses the same exponential backoff algorithm as BackoffOptions.

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

    A factory for producing the Source 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
    Source<T, NotUsed>
    Type Parameters
    Name Description
    T
    TMat
    | Edit this page View Source

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

    Wrap the given Source with a Source that will restart it when it fails or complete using an exponential backoff. This Source will never emit a complete or failure, since the completion or failure of the wrapped Source is always handled by restarting it. The wrapped Source can however be cancelled by cancelling this Source. When that happens, the wrapped Source, 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 IKillSwitch right after this Source in the graph. This uses the same exponential backoff algorithm as BackoffOptions.

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

    A factory for producing the Source 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
    Source<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