Ejemplo n.º 1
0
        private async Task ProcessMessage(IReceivedMessage rabbitMessage, string queueName, Func <string, IReceivedMessage, Task> messageAction)
        {
            try
            {
                await messageAction(queueName, rabbitMessage);

                await rabbitMessage.CompleteAsync();
            }
            catch (Exception exception)
            {
                try
                {
                    await rabbitMessage.AbandonAsync();
                }
                catch (Exception abandonException)
                {
                    throw new RabbitMQException("Received Message Abandon Error", abandonException);
                }
                throw new RabbitMQException("Received Message Completion Error", exception);
            }
        }