title: Where does a BasicReject with requeue actually go?
body: <p>This seems like a simple question, but I'm having a hard time finding a definitive answer. If in RabbitMQ 3.6.1 I have a queue that looks like this:</p>
  
  <pre><code>5  4  3  2  1  &lt;= head
  </code></pre>
  
  <p>And I consume message 1, then do:</p>
  
  <pre><code>channel.BasicReject(ea.DeliveryTag, true);
  </code></pre>
  
  <p>Will the <code>1</code> end up on the end of the queue or at the head of the queue (assuming for the sake of simplicity that nobody else is consuming the queue at the time)? So will I end up with:</p>
  
  <pre><code>1  5  4  3  2  &lt;= head
  </code></pre>
  
  <p>or:</p>
  
  <pre><code>5  4  3  2  1  &lt;= head
  </code></pre>
  
  <p>And is there anyway to control it (one way would be to ack the message and repost it entirely I suppose)? I actually want the first situation because I'm rejecting <code>1</code> because a particular resource needed to process that message is currently unavailable. So I'd like to throw it back on the queue to be processed later (when the resource is available) or get picked up by somebody else (who has resources available). But I don't want to throw it back just to keep picking it up again.</p>