node-amqp queue destroyed:对订阅者的通知

时间:2013-12-18 12:23:30

标签: node.js rabbitmq node-amqp

我正在使用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();
});

};

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

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

我试图监听有效的“queueDeletedOk”事件,但它只在进程2中发出和接收,这正在破坏队列。尝试在队列上“关闭”事件也是如此。

感谢和最诚挚的问候,

1 个答案:

答案 0 :(得分:2)

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

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

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

相关问题