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.

Respuestas a la pregunta(2)

Su respuesta a la pregunta