Table of Contents

Class InMemoryMessageDeduplicationStore

Namespace
AnyProtocol
Assembly
AnyProtocol.dll

Provides a process-local inbox store for tests and single-instance applications.

public sealed class InMemoryMessageDeduplicationStore : IMessageDeduplicationStore
Inheritance
InMemoryMessageDeduplicationStore
Implements
Inherited Members

Constructors

InMemoryMessageDeduplicationStore(string, TimeProvider?)

Creates a process-local inbox store.

public InMemoryMessageDeduplicationStore(string name = "in-memory", TimeProvider? timeProvider = null)

Parameters

name string
timeProvider TimeProvider

Properties

Name

Gets the logical provider registration name.

public string Name { get; }

Property Value

string

Methods

CompleteAsync(MessageDeduplicationLease, TimeSpan, CancellationToken)

Marks a successfully processed lease as complete for the retention window.

public ValueTask CompleteAsync(MessageDeduplicationLease lease, TimeSpan retention, CancellationToken cancellationToken = default)

Parameters

lease MessageDeduplicationLease
retention TimeSpan
cancellationToken CancellationToken

Returns

ValueTask

ReleaseAsync(MessageDeduplicationLease, CancellationToken)

Releases a failed processing lease so that the broker can redeliver it.

public ValueTask ReleaseAsync(MessageDeduplicationLease lease, CancellationToken cancellationToken = default)

Parameters

lease MessageDeduplicationLease
cancellationToken CancellationToken

Returns

ValueTask

TryAcquireAsync(string, TimeSpan, CancellationToken)

Atomically acquires a processing lease, or returns null when the message is already being processed or has completed within its retention window.

public ValueTask<MessageDeduplicationLease?> TryAcquireAsync(string messageId, TimeSpan leaseDuration, CancellationToken cancellationToken = default)

Parameters

messageId string
leaseDuration TimeSpan
cancellationToken CancellationToken

Returns

ValueTask<MessageDeduplicationLease?>