Show / Hide Table of Contents

    Interface IReceiverState

    Interface for data structures used for tracking delivery state.

    Namespace:Akka.Persistence.Extras
    Assembly:Akka.Persistence.Extras.dll
    Syntax
    public interface IReceiverState

    Properties

    Ordering

    The ordering expected by the DeDuplicatingReceiveActor.

    Declaration
    ReceiveOrdering Ordering { get; }
    Property Value
    Type Description
    ReceiveOrdering

    TrackedSenders

    Returns the set of current senders by their IDs and the last time we processed a message sent from them.

    Declaration
    IReadOnlyDictionary<string, DateTime> TrackedSenders { get; }
    Property Value
    Type Description
    IReadOnlyDictionary<System.String, DateTime>

    Methods

    AlreadyProcessed(Int64, String)

    Check to see if this message has already been processed or not.

    Declaration
    bool AlreadyProcessed(long confirmationId, string senderId)
    Parameters
    Type Name Description
    System.Int64 confirmationId

    The correlation id for this specific message.

    System.String senderId

    The identity of the sender.

    Returns
    Type Description
    System.Boolean

    true if the message has been processed before. false otherwise.

    ConfirmProcessing(Int64, String)

    Confirm that we've completed processing of a message from a specific sender.

    Declaration
    IReceiverState ConfirmProcessing(long confirmationId, string senderId)
    Parameters
    Type Name Description
    System.Int64 confirmationId

    The correlation id for this specific message.

    System.String senderId

    The identity of the sender.

    Returns
    Type Description
    IReceiverState

    A new copy of the IReceiverState or possibly the same. Varies by implementation.

    FromSnapshot(IReceiverStateSnapshot)

    Re-populate this object from a IReceiverStateSnapshot.

    Declaration
    IReceiverState FromSnapshot(IReceiverStateSnapshot snapshot)
    Parameters
    Type Name Description
    IReceiverStateSnapshot snapshot

    The snapshot recovered from Akka.Persistence.

    Returns
    Type Description
    IReceiverState

    A new or possibly the same IReceiverState instance, with its data modified by the IReceiverStateSnapshot.

    Prune(TimeSpan)

    Used to help reduce memory pressure on systems that have a large number of senders. Prune any sender records that have not been updated in a LONG time.

    Declaration
    PrunedResult Prune(TimeSpan notUsedSince)
    Parameters
    Type Name Description
    TimeSpan notUsedSince

    The elapsed time since a sender was last used.

    Returns
    Type Description
    PrunedResult

    An updated state and the list of senders who were pruned during this operation.

    Remarks

    You can inadvertently break the de-duplication mechanism used be the DeDuplicatingReceiveActor class whenever you purge the receiver state. The bet you're making is that because messages received from these senders are so infrequent, the possibility of receiving another message you've already confirmed from them is effectively zero, therefore we're better off freeing up the memory used to track them for other senders who might be doing work.

    ToSnapshot()

    Convert this object into a IReceiverStateSnapshot so it can be serialized.

    Declaration
    IReceiverStateSnapshot ToSnapshot()
    Returns
    Type Description
    IReceiverStateSnapshot

    A new snapshot object.

    Back to top Copyright © 2015-2018 Petabridge®