对于一些pub/sub工具,我使用node-amqp和rabbit。我想知道当有人/某物(在其他进程中)破坏了他们正在监听的队列时,是否有可能通知订阅者。
例如,进程一:
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中发出和接收,这会破坏队列。在队列中尝试事件"close“时也会发生同样的情况。
感谢并致以最良好的问候,
发布于 2013-12-19 20:24:06
RabbitMQ支持消费者取消通知:http://www.rabbitmq.com/consumer-cancel.html
我不知道您正在使用的库是什么,但这里的这个库1是由前RabbitMQ核心开发人员创建的,它支持消费者取消通知。
1- http://squaremo.github.io/amqp.node/doc/channel_api.html
https://stackoverflow.com/questions/20658124
复制相似问题