A message can be requeued when consumer fails to process a message. It comes in handy when the message failed due a temporary glitch & can be processed successfully in next attempt or by a different consumer instance. The option whether to requeue or not can be controlled by requeue parameter while doing negative acknowledgement (basic.nack or basic.reject) from the consumer.
When a message is requeued, it will be placed to its original position in its queue, if possible. If not (due to concurrent deliveries and acknowledgements from other consumers when multiple consumers share a queue), the message will be requeued to a position closer to queue head.