/// <summary> /// Dequeues a collection of inbound messages from RabbitMQ. /// </summary> /// <param name="maxItems">The maximum amount of messages to dequeue.</param> /// <returns>The dequeue messages.</returns> public static async Task <IList <MtaMessage> > Dequeue(int maxItems) { List <BasicDeliverEventArgs> items = RabbitMqManager.Dequeue(RabbitMqManager.RabbitMqQueue.Inbound, maxItems, 1 * 1000); IList <MtaMessage> messages = new List <MtaMessage>(); if (items.Count == 0) { return(messages); } foreach (BasicDeliverEventArgs ea in items) { MtaMessage msg = await Serialisation.Deserialise <MtaMessage>(ea.Body); msg.RabbitMqDeliveryTag = ea.DeliveryTag; messages.Add(msg); } return(messages); }
/// <summary> /// Dequeue a message from RabbitMQ. /// </summary> /// <returns>A dequeued message or null if there weren't any.</returns> public static async Task <MtaQueuedMessage> Dequeue() { BasicDeliverEventArgs ea = null; try { ea = RabbitMqManager.Dequeue(RabbitMqManager.RabbitMqQueue.OutboundWaiting, 1, 100).FirstOrDefault(); } catch (Exception) { ea = null; } if (ea == null) { return(null); } MtaQueuedMessage qmsg = await Serialisation.Deserialise <MtaQueuedMessage>(ea.Body); qmsg.RabbitMqDeliveryTag = ea.DeliveryTag; qmsg.IsHandled = false; return(qmsg); }