我正在使用RabbitMq真正令人惊叹的消息代理,但我需要的是在队列中有长消息备份时间。因此,如果某个消费者未达到当时处于非活动状态并且在几分钟后处于活动状态的消息,则该消息最终应通过扇出交换传递给相应的消费者。
我尝试的是我在队列中增加了TTL。无论是正确的方式还是其他一些技巧都可以做到?
提前致谢
答案 0 :(得分:2)
您可以尝试使用x-message-ttl
和x-dead-letter-exchange
args.put("x-message-ttl", 10000);
args.put("x-dead-letter-exchange",exchange_dead_letter);
channel.queueDeclare(queue, false, false, false, args);
x-dead-letter-exchange
是一个交换,如果消息在TTL时间到期,则该消息将重定向到x-dead-letter-exchange
。
然后您可以根据需要处理邮件。 您可以在此处找到更多详细信息:http://www.rabbitmq.com/dlx.html。