title: How to requeue messages in RabbitMQ
body: <p>After the consumer gets a message, consumer/worker does  some validations and then call web service. In this phase, if any error occurs or validation fails, we want the message put back to the queue it was originally consumed from.</p>
  
  <p>I have read RabbitMQ documentation. But I am confused about differences between reject, nack and cancel methods.</p>