title: Re-queue message on exception
body: <p>I'm looking for a solid way of re-queuing messages that couldn't be handled properly - at this time.</p>
  
  <p>I've been looking at <a href="http://dotnetcodr.com/2014/06/16/rabbitmq-in-net-c-basic-error-handling-in-receiver/" rel="nofollow">http://dotnetcodr.com/2014/06/16/rabbitmq-in-net-c-basic-error-handling-in-receiver/</a> and it seems that it's supported to requeue messages in the RabbitMQ API. </p>
  
  <pre><code>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);
  }
  </code></pre>
  
  <p>However I'm using EasyNetQ.
  So wondering how I would do something similar here.</p>
  
  <pre><code>bus.Subscribe&lt;MyMessage&gt;("my_subscription_id", msg =&gt; {
      try
      {
          // do work... could be long running
      }
      catch ()
      {
          // something went wrong - requeue message
      }
  });
  </code></pre>
  
  <p>Is this even a good approach? Not <code>ACK</code> the message could cause problems if <code>do work</code> exceeds the wait for <code>ACK</code> timeout by the RabbitMQ server.</p>