我在docker镜像中有RabbitMQ群集。 RabbitMQ有1个交换" EventExchange"和2个队列:" QueueWait"和" QueueAction"。配置为重发的队列:
消费者会收听QueueAction。
逻辑
问题
今天我遇到了问题。过期的消息不会在QueueWait和QueueAction之间移动。但是如果我从RabbitMQ的默认GUI中获取QueueWait的所有消息,它们将成功地移动到QueueAction
环境
UPD:
我必须在消息级别设置TTL,因为我有可变的到期时间依赖于重发的尝试。如何在保证重发的情况下保存当前逻辑?
答案 0 :(得分:1)
查看https://www.rabbitmq.com/ttl.html#per-message-ttl-caveats
当RabbitMQ到达队列的头部时会过期,所以如果你没有消费者,很可能你的消息不会过期。