title: RabbitMQ difference between exclusive and auto-delete?
body: <p>The "RabbitMQ in Action" book on page 19 gives these descriptions of exclusive and auto-delete:</p>
  
  <blockquote>
    <p>exclusive - When set to true, your queue becomes private and can only
    be consumed by your app. This is useful when you need to limit a queue
    to only one consumer.</p>
    
    <p>auto-delete - The queue is automatically deleted when the last
    consumer unsubscribes. If you need a temporary queue used only by one
    consumer, combine auto-delete with exclusive. When the consumer
    disconnects, the queue will be removed.</p>
  </blockquote>
  
  <p>But as far as I can see when using exclusive, auto-delete is redundant. Only exclusive is needed. The RabbitMQ <a href="http://www.rabbitmq.com/tutorials/tutorial-three-python.html">tutorial</a> seems to say that is the case</p>
  
  <blockquote>
    <p>...once we disconnect the consumer the queue should be deleted. There's
    an exclusive flag for that:</p>
  </blockquote>
  
  <pre><code>result = channel.queue_declare(exclusive=True)
  </code></pre>
  
  <p>There is no mention in that tutorial about auto-delete and <code>sudo rabbitmqctl list_bindings</code> seems to indicate that the queue is in fact deleted after the receiver goes away.</p>