[rabbitmq-discuss] why isn't my queue durable? (python client)

Tony Garnock-Jones tonyg at lshift.net
Thu Apr 30 17:18:29 BST 2009

Brian Whitman wrote:
> I declare the queue and exchange with durable=True. I add a bunch of
> messages and issue a /etc/init.d/rabbitmq-server restart. On restart the
> queue I created has 0 messages.

In AMQP, there are two concepts relating to sorts of permanence:

 - durability: queues and exchanges that survive restarts
 - persistence: *messages* that survive restarts

To get your messages to stick around after a restart, you must both

 - arrange for them to land in a durable queue, AND
 - publish them with delivery-mode set to 2 (meaning persistent)
   in the content header for the basic.publish

I'm not sure of the precise arguments to use with the python client, but
I'm sure they exist :-) (having just glanced at the demos, it looks like
the delivery_mode keyword to the Message() constructor is what you want.)

 [][][] Tony Garnock-Jones     | Mob: +44 (0)7905 974 211
   [][] LShift Ltd             | Tel: +44 (0)20 7729 7060
 []  [] http://www.lshift.net/ | Email: tonyg at lshift.net

More information about the rabbitmq-discuss mailing list