I have RabbitMQ cluster in docker images. RabbitMQ have 1 exchange "EventExchange" and 2 queues: "QueueWait" and "QueueAction". Queues configured for resend:
- x-dead-letter-exchange: EventExchange
- x-dead-letter-routing-key: QueueAction
- durable: true
And consumer listens QueueAction.
Logic
- Message is inserted into queue QueueWait with variable expiration time
- After expiration message is moved from QueueWait to QueueAction
- Consumer listening QueueAction got message
Problem
Today I had problem. Expired messages are not moved between QueueWait and QueueAction. But if I get all messages from QueueWait in default GUI of RabbitMQ they will be moved to the QueueAction succesfully
Environment
- Image of docker - May be it is docker problem?
- RabbitMQ 3.2.4, Erlang R16B03
UPD:
I have to set TTL on the message level, because I have variable expiration dependet on the attempts of resend. How will I able to save current logic with guaranteed resend?