Interface IMessageTtlManager
- Namespace
- DotCompute.Abstractions.Messaging
- Assembly
- DotCompute.Abstractions.dll
Manages message TTL enforcement and expiration handling.
public interface IMessageTtlManager : IAsyncDisposable
- Inherited Members
Properties
ExpiredCount
Gets the number of messages that have expired while being tracked.
long ExpiredCount { get; }
Property Value
TrackedCount
Gets the number of messages currently being tracked.
int TrackedCount { get; }
Property Value
Methods
CancelTracking(Guid)
Stops tracking a message.
bool CancelTracking(Guid trackingId)
Parameters
trackingIdGuidThe tracking ID from TrackAsync<TMessage>(TMessage, Func<TMessage, Task>, CancellationToken).
Returns
- bool
True if tracking was cancelled.
GetRemainingTtl<TMessage>(TMessage)
Gets the remaining TTL for a message.
TimeSpan? GetRemainingTtl<TMessage>(TMessage message) where TMessage : IRingKernelMessage
Parameters
messageTMessageThe message to check.
Returns
- TimeSpan?
Remaining time, or TimeSpan.Zero if expired, or null if no TTL.
Type Parameters
TMessageThe message type.
IsExpired<TMessage>(TMessage)
Checks if a message has expired.
bool IsExpired<TMessage>(TMessage message) where TMessage : IRingKernelMessage
Parameters
messageTMessageThe message to check.
Returns
- bool
True if the message has expired.
Type Parameters
TMessageThe message type.
TrackAsync<TMessage>(TMessage, Func<TMessage, Task>, CancellationToken)
Tracks a message for TTL enforcement.
Task<Guid> TrackAsync<TMessage>(TMessage message, Func<TMessage, Task> onExpired, CancellationToken cancellationToken = default) where TMessage : IRingKernelMessage
Parameters
messageTMessageThe message to track.
onExpiredFunc<TMessage, Task>Callback when the message expires.
cancellationTokenCancellationTokenCancellation token.
Returns
Type Parameters
TMessageThe message type.
Events
MessageExpired
Occurs when a tracked message expires.
event EventHandler<MessageExpiredEventArgs>? MessageExpired