Table of Contents

Class MessageTtlExtensions

Namespace
DotCompute.Core.Messaging
Assembly
DotCompute.Core.dll

Extension methods for message TTL and dead letter operations.

public static class MessageTtlExtensions
Inheritance
MessageTtlExtensions
Inherited Members

Methods

DeadLetterIfExpiredAsync<TMessage>(IDeadLetterQueue, TMessage, string?, CancellationToken)

Sends a message to the dead letter queue if it has expired.

public static Task<DeadLetterEntry?> DeadLetterIfExpiredAsync<TMessage>(this IDeadLetterQueue dlq, TMessage message, string? sourceQueue = null, CancellationToken cancellationToken = default) where TMessage : IRingKernelMessage

Parameters

dlq IDeadLetterQueue

The dead letter queue.

message TMessage

The message to check and potentially dead-letter.

sourceQueue string

Optional source queue name.

cancellationToken CancellationToken

Cancellation token.

Returns

Task<DeadLetterEntry>

The dead letter entry if the message expired, or null.

Type Parameters

TMessage

The message type.

DeadLetterOnErrorAsync<TMessage>(IDeadLetterQueue, TMessage, Exception, int, string?, CancellationToken)

Sends a message to the dead letter queue after a processing error.

public static Task<DeadLetterEntry> DeadLetterOnErrorAsync<TMessage>(this IDeadLetterQueue dlq, TMessage message, Exception exception, int attemptCount = 1, string? sourceQueue = null, CancellationToken cancellationToken = default) where TMessage : IRingKernelMessage

Parameters

dlq IDeadLetterQueue

The dead letter queue.

message TMessage

The failed message.

exception Exception

The exception that occurred.

attemptCount int

Number of processing attempts.

sourceQueue string

Optional source queue name.

cancellationToken CancellationToken

Cancellation token.

Returns

Task<DeadLetterEntry>

The dead letter entry.

Type Parameters

TMessage

The message type.

DeadLetterOnMaxRetriesAsync<TMessage>(IDeadLetterQueue, TMessage, int, Exception?, string?, CancellationToken)

Sends a message to the dead letter queue after max retries exceeded.

public static Task<DeadLetterEntry> DeadLetterOnMaxRetriesAsync<TMessage>(this IDeadLetterQueue dlq, TMessage message, int maxRetries, Exception? lastException = null, string? sourceQueue = null, CancellationToken cancellationToken = default) where TMessage : IRingKernelMessage

Parameters

dlq IDeadLetterQueue

The dead letter queue.

message TMessage

The failed message.

maxRetries int

Maximum retry count that was exceeded.

lastException Exception

The last exception that occurred.

sourceQueue string

Optional source queue name.

cancellationToken CancellationToken

Cancellation token.

Returns

Task<DeadLetterEntry>

The dead letter entry.

Type Parameters

TMessage

The message type.

WithNoExpiration<TMessage>(TMessage)

Creates a message envelope with infinite TTL (no expiration).

public static MessageEnvelope<TMessage> WithNoExpiration<TMessage>(this TMessage message) where TMessage : IRingKernelMessage

Parameters

message TMessage

The message to wrap.

Returns

MessageEnvelope<TMessage>

A message envelope that never expires.

Type Parameters

TMessage

The message type.

WithTtl<TMessage>(TMessage, TimeSpan)

Creates a message envelope with TTL for any message.

public static MessageEnvelope<TMessage> WithTtl<TMessage>(this TMessage message, TimeSpan timeToLive) where TMessage : IRingKernelMessage

Parameters

message TMessage

The message to wrap.

timeToLive TimeSpan

The TTL duration.

Returns

MessageEnvelope<TMessage>

A message envelope with TTL.

Type Parameters

TMessage

The message type.