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
dlqIDeadLetterQueueThe dead letter queue.
messageTMessageThe message to check and potentially dead-letter.
sourceQueuestringOptional source queue name.
cancellationTokenCancellationTokenCancellation token.
Returns
- Task<DeadLetterEntry>
The dead letter entry if the message expired, or null.
Type Parameters
TMessageThe 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
dlqIDeadLetterQueueThe dead letter queue.
messageTMessageThe failed message.
exceptionExceptionThe exception that occurred.
attemptCountintNumber of processing attempts.
sourceQueuestringOptional source queue name.
cancellationTokenCancellationTokenCancellation token.
Returns
- Task<DeadLetterEntry>
The dead letter entry.
Type Parameters
TMessageThe 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
dlqIDeadLetterQueueThe dead letter queue.
messageTMessageThe failed message.
maxRetriesintMaximum retry count that was exceeded.
lastExceptionExceptionThe last exception that occurred.
sourceQueuestringOptional source queue name.
cancellationTokenCancellationTokenCancellation token.
Returns
- Task<DeadLetterEntry>
The dead letter entry.
Type Parameters
TMessageThe 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
messageTMessageThe message to wrap.
Returns
- MessageEnvelope<TMessage>
A message envelope that never expires.
Type Parameters
TMessageThe 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
messageTMessageThe message to wrap.
timeToLiveTimeSpanThe TTL duration.
Returns
- MessageEnvelope<TMessage>
A message envelope with TTL.
Type Parameters
TMessageThe message type.