2

我将 node-amqp 和 rabbit 用于一些 pub/sub 工具。我想知道当某人/某物(在其他进程中)破坏了他们正在收听的队列时是否可以通知订阅者。

比如流程一:

connection.queue(name = "test-queue1", options, function(queue) {

 queue.subscribe({}, function(message, headers, deliveryInfo) {
   deliverMessage(message);
 }).once('error', function(error) {
   logger.error(error)
 }).once("queueDeleteOk", function bindHandler() {
  queue.close();
});

};

现在,其他进程可能会破坏该队列。订阅者如何知道这一点?例如,流程二可以这样做:

connection.queue(name = "test-queue1", options, function(queue) {
   queue.destroy(delete_options);
}).once("queueDeleteOk", function bindHandler() {
  queue.close();
});

我试图监听有效的事件“queueDeletedOk”,但它只在进程二中发出和接收,这正在破坏队列。尝试通过队列“关闭”事件也会发生同样的情况。

谢谢和最好的问候,

4

1 回答 1

2

RabbitMQ 支持消费者取消通知http ://www.rabbitmq.com/consumer-cancel.html

我不知道您正在使用的库,但这里 [1] 的这个库是由前 RabbitMQ 核心开发人员创建的,并支持消费者取消通知。

1 - http://squaremo.github.io/amqp.node/doc/channel_api.html

于 2013-12-19T12:24:05.740 回答