Ejemplo n.º 1
0
 /// <summary>Enqueue a new item.</summary>
 /// <typeparam name="T">The type of message.</typeparam>
 /// <param name="queue">The message queue.</param>
 /// <param name="item">The message item.</param>
 public static async Task Enqueue <T>(this IMessageQueue <T> queue, T item) where T : class
 {
     var message = new QMessage <T> {
         Id    = Guid.NewGuid(),
         Date  = DateTime.UtcNow,
         Value = item,
         IsNew = true
     };
     await queue.Enqueue(message, isPoison : false);
 }
Ejemplo n.º 2
0
 /// <summary>Marks an existing message as poison, after three consecutive failures.</summary>
 /// <typeparam name="T">The type of message.</typeparam>
 /// <param name="queue">The message queue.</param>
 /// <param name="message">The message.</param>
 public static async Task MarkPoison <T>(this IMessageQueue <T> queue, QMessage <T> message) where T : class => await queue.Enqueue(message, isPoison : true);
Ejemplo n.º 3
0
 /// <summary>Enqueue an existing item.</summary>
 /// <typeparam name="T">The type of message.</typeparam>
 /// <param name="queue">The message queue.</param>
 /// <param name="message">The message.</param>
 public static async Task ReEnqueue <T>(this IMessageQueue <T> queue, QMessage <T> message) where T : class
 {
     message.DequeueCount++;
     await queue.Enqueue(message, isPoison : false);
 }