Volver a poner en cola el mensaje de excepción
Estoy buscando una forma sólida de volver a poner en cola los mensajes que no se pueden manejar correctamente, en este momento.
He estado mirandohttp://dotnetcodr.com/2014/06/16/rabbitmq-in-net-c-basic-error-handling-in-receiver/ y parece que es compatible para solicitar mensajes en la API RabbitMQ.
else //reject the message but push back to queue for later re-try
{
Console.WriteLine("Rejecting message and putting it back to the queue: {0}", message);
model.BasicReject(deliveryArguments.DeliveryTag, true);
}
Sin embargo, estoy usando EasyNetQ. Entonces me pregunto cómo haría algo similar aquí.
bus.Subscribe<MyMessage>("my_subscription_id", msg => {
try
{
// do work... could be long running
}
catch ()
{
// something went wrong - requeue message
}
});
¿Es este un buen enfoque? NoACK
el mensaje puede causar problemas sido work
excede la espera deACK
tiempo de espera por el servidor RabbitMQ.