[rabbitmq-discuss] Lost messages on dead-letter + ttl queue while process is restarted?
aaron.pfeifer at gmail.com
Wed Oct 31 15:35:52 GMT 2012
Hey guys -
I'm seeing some unexpected behaviors with lost messages and I wanted to
make sure that this is intended by RabbitMQ.
I have a queue called "messages.log" set up with the following
* x-message-ttl: 15000 (15s)
* x-dead-letter-exchange: messages.retry
* durable: true
The expectation is that when I publish a persistent message to
"messages.log" it will sit in the queue for 15s, after which point it'll be
dead-lettered into the "messages.retry" exchange.
I'm seeing the following behaviors:
* When a persistent message is published to "messages.log", after 15s it
gets delivered to the "messages.retry" exchange and lands into the queue
bound to that exchange.
* When a persistent message is published to "messages.log" and the rabbitmq
process then gets force-stopped for less than 15s (i.e. total time for
stopping and starting rabbitmq is less than 15s), the message is still in
"messages.log" and eventually gets delivered to the "messages.retry"
exchange when the TTL is hit
* *However*, when a persistent message is published to "messages.log" and
the rabbitmq process then gets force-stopped for *more than 15s*, the
message disappears. It's not in "messages.log" and it's not in the queue
bounded to "messages.retry".
My interpretation is that if the RabbitMQ process is not running when a
message's TTL is reached, then the message does not get properly
dead-lettered -- it, instead, just gets dropped on the floor.
Is my understanding correct? Is that the intended behavior? If so, is
there any way to ensure that this message gets properly persisted /
Thanks for any thoughts!
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the rabbitmq-discuss