专门连接到现有RabbitMQ队列

时间:2017-02-01 13:39:30

标签: .net rabbitmq message-queue easynetq

我有一个工作者在rabbitmq上订阅了一个预先存在的队列。出于冗余目的,我们决定添加另一个连接到同一队列的worker。

是否可以设置第一个worker获取队列的独占连接,以便第二个worker无法使消息出列,从而充当备用工作者?

1 个答案:

答案 0 :(得分:0)

嗯......声明队列时,可以设置exclusive标志。这只为声明它的客户提供“访问权限”。

在你的情况下,队列已经存在,所以你不能通过将exclusive标志设置为true来再次声明它(我假设因为队列是为其他人预先创建的,所以flag是假的。)

考虑到您一次只想要一个消费者(我没有问为什么必须是一个消费者),因此解决方案很少。 一个是你有某种消费者监督者会产生消费者,并确保只有一个人在一个时刻活着。实际上 - 它会监视一个消费者并在它被阻止或死亡时重新启动它......

您还可以尝试使用consumer priorities并以优先消费者拥有更大预取的方式调整消费者,但我认为它不适合您需要的内容。