Show / Hide Table of Contents

    Class InMemoryOutbox

    An outbound queue persisted in memory. Note that writing in the queue is thread-safe but reading is not. Implements both IOutboxWriter and IOutboxReader.

    Inheritance
    object
    TransactionalList<OutboxStoredMessage>
    InMemoryOutbox
    Implements
    IOutboxWriter
    IOutboxReader
    Inherited Members
    TransactionalList<OutboxStoredMessage>.CommittedItemsCount
    TransactionalList<OutboxStoredMessage>.Items
    TransactionalList<OutboxStoredMessage>.UncommittedItems
    TransactionalList<OutboxStoredMessage>.CommitAsync()
    TransactionalList<OutboxStoredMessage>.RollbackAsync()
    TransactionalList<OutboxStoredMessage>.AddAsync(OutboxStoredMessage)
    TransactionalList<OutboxStoredMessage>.RemoveAsync(OutboxStoredMessage)
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: Silverback.Messaging.Outbound.TransactionalOutbox.Repositories
    Assembly: Silverback.Integration.dll
    Syntax
    public class InMemoryOutbox : TransactionalList<OutboxStoredMessage>, IOutboxWriter, IOutboxReader

    Constructors

    | Improve this doc View source

    InMemoryOutbox(TransactionalListSharedItems<OutboxStoredMessage>)

    Initializes a new instance of the InMemoryOutbox class.

    Declaration
    public InMemoryOutbox(TransactionalListSharedItems<OutboxStoredMessage> sharedItems)
    Parameters
    Type Name Description
    TransactionalListSharedItems<OutboxStoredMessage> sharedItems

    The messages shared between the instances of this repository.

    Methods

    | Improve this doc View source

    AcknowledgeAsync(OutboxStoredMessage)

    Called after the message has been successfully produced to remove it from the outbox.

    Declaration
    public Task AcknowledgeAsync(OutboxStoredMessage outboxMessage)
    Parameters
    Type Name Description
    OutboxStoredMessage outboxMessage

    The message that was processed.

    Returns
    Type Description
    Task

    A Task representing the result of the asynchronous operation.

    | Improve this doc View source

    AcknowledgeAsync(IEnumerable<OutboxStoredMessage>)

    Called after the message has been successfully produced to remove it from the outbox.

    Declaration
    public Task AcknowledgeAsync(IEnumerable<OutboxStoredMessage> outboxMessages)
    Parameters
    Type Name Description
    IEnumerable<OutboxStoredMessage> outboxMessages

    The messages that have been processed.

    Returns
    Type Description
    Task

    A Task representing the result of the asynchronous operation.

    | Improve this doc View source

    GetLengthAsync()

    Returns the total number of messages in the outbox.

    Declaration
    public Task<int> GetLengthAsync()
    Returns
    Type Description
    Task<int>

    A Task<TResult> representing the asynchronous operation. The task result contains the number of messages in the outbox.

    | Improve this doc View source

    GetMaxAgeAsync()

    Gets a TimeSpan representing the time elapsed since the oldest message currently in the outbox was written.

    Declaration
    public Task<TimeSpan> GetMaxAgeAsync()
    Returns
    Type Description
    Task<TimeSpan>

    The age of the oldest message.

    | Improve this doc View source

    ReadAsync(int)

    Reads the specified number of messages from the outbox (according to the FIFO rule). The operation must be acknowledged for the messages to be removed.

    Declaration
    public Task<IReadOnlyCollection<OutboxStoredMessage>> ReadAsync(int count)
    Parameters
    Type Name Description
    int count

    The number of items to be dequeued.

    Returns
    Type Description
    Task<IReadOnlyCollection<OutboxStoredMessage>>

    A Task representing the result of the asynchronous operation. The task result contains the collection of OutboxStoredMessage.

    | Improve this doc View source

    RetryAsync(OutboxStoredMessage)

    Called when an error occurs producing the message to re-enqueue it and retry later on.

    Declaration
    public Task RetryAsync(OutboxStoredMessage outboxMessage)
    Parameters
    Type Name Description
    OutboxStoredMessage outboxMessage

    The message that was processed.

    Returns
    Type Description
    Task

    A Task representing the result of the asynchronous operation.

    | Improve this doc View source

    RetryAsync(IEnumerable<OutboxStoredMessage>)

    Called when an error occurs producing the message to re-enqueue it and retry later on.

    Declaration
    public Task RetryAsync(IEnumerable<OutboxStoredMessage> outboxMessages)
    Parameters
    Type Name Description
    IEnumerable<OutboxStoredMessage> outboxMessages

    The messages that have been processed.

    Returns
    Type Description
    Task

    A Task representing the result of the asynchronous operation.

    | Improve this doc View source

    WriteAsync(object?, byte[]?, IReadOnlyCollection<MessageHeader>?, string, string)

    Adds the message contained in the specified envelope to the outbox.

    Declaration
    public Task WriteAsync(object? message, byte[]? messageBytes, IReadOnlyCollection<MessageHeader>? headers, string endpointName, string actualEndpointName)
    Parameters
    Type Name Description
    object message

    The message to be delivered.

    byte[] messageBytes

    The actual serialized message to be delivered.

    IReadOnlyCollection<MessageHeader> headers

    The message headers.

    string endpointName

    The name of the configured endpoint to produce to.

    string actualEndpointName

    The actual endpoint to produce to.

    Returns
    Type Description
    Task

    A Task representing the asynchronous operation.

    Implements

    IOutboxWriter
    IOutboxReader
    • Improve this doc
    • View source
    GitHub E-Mail
    ↑ Back to top © 2020 Sergio Aquilini