是否支持RabbitMQ在某种程度上,我可以定义我的消费者,它有消费相同消息的限制。也就是说,我的客户使用enqueue=true做了一个基本的拒绝。它将无限地继续监听相同的消息。我不是在谈论队列端的TTL。但是对消费者的控制/配置告诉我只想消费它5次,然后将它发送到另一个队列。这是否可以做到呢?
发布于 2013-08-16 06:12:37
这可以在应用程序级别或通过TTL和Dead Letter Exchanges完成。在经纪人端没有你想要的方法(我也看不出你为什么不能在消费者端做到这一点)
附言:只需让评论更明显
其主要思想是创建自定义ttl属性( TCP/IP包中的a-la跳数),并在每次使用消息时减少它(并使用新的属性重新发布消息体)。当它达到零时-将其发布到其他队列。
发布于 2013-08-16 15:43:47
所以,是的,我相信这是可以做到的。您将需要缓存收到的邮件的传递标签,并跟踪拒绝计数。一旦特定消息的拒绝计数大于5,然后将该消息发布到另一个队列。您还需要为接收到的邮件返回RabbitMQ,并可能创建一个新邮件(带有新的交付标记)并发布它。
https://stackoverflow.com/questions/18261702
复制