1

RabbitMQ 在某种程度上是否有能力,我可以定义我的消费者,它具有消费相同消息的限制。即我的消费者使用 enqueue=true 进行基本拒绝。它会无限地继续收听相同的信息。我不是在谈论队列方面的 TTL。但是对消费者的控制/配置告诉我只想消费 5 次,然后将其发送到另一个队列。这可以实现吗?

4

2 回答 2

1

这可以在应用程序级别或通过TTL死信交换来完成。在经纪人方面没有你想要的方式(我认为你没有理由不能在消费者方面这样做)

PS:只是让评论更明显

主要思想是创建自定义 ttl 属性(TCP/IP 包中的 a-la 跃点计数)并在每次使用消息时减少它(并使用新道具重新发布消息正文)。当它达到零时 - 将其发布到其他队列。

于 2013-08-16T06:12:37.237 回答
1

所以是的,我相信这是可以做到的。您将需要缓存收到的邮件的传递标签,并跟踪拒绝计数。一旦特定消息的拒绝计数大于 5,然后将消息发布到另一个队列。您还需要向 RabbitMQ 确认收到的消息,并可能创建一条新消息(带有新的传递标签)并发布它。

于 2013-08-16T15:43:47.073 回答