【发布时间】:2014-10-20 11:03:45
【问题描述】:
我在 docker 镜像中有 RabbitMQ 集群。 RabbitMQ 有 1 个交换“EventExchange”和 2 个队列:“QueueWait”和“QueueAction”。为重新发送配置的队列:
- x-dead-letter-exchange: EventExchange
- x-dead-letter-routing-key: QueueAction
- 耐用:真实
消费者会监听 QueueAction。
逻辑
- 消息被插入队列QueueWait,过期时间可变
- 过期消息从 QueueWait 移动到 QueueAction 后
- 消费者监听 QueueAction 得到消息
问题
今天我遇到了问题。过期消息不会在 QueueWait 和 QueueAction 之间移动。但是,如果我在 RabbitMQ 的默认 GUI 中从 QueueWait 获取所有消息,它们将成功移动到 QueueAction
环境
- docker 的图片 - 可能是 docker 问题?
- RabbitMQ 3.2.4,Erlang R16B03
更新:
我必须在消息级别设置 TTL,因为我有可变的过期依赖于重新发送的尝试。如何通过保证重新发送来保存当前逻辑?
【问题讨论】: