我有两个消费者需要处理来自同一队列的消息,但在任何时候只需要其中一个消息。我想要完成的一系列是这样的:
这最初是按预期工作的。在上面的步骤#5之后,我看到来自制作人的更多消息被传递给两个消费者,交替地传递给他们中的每一个,即使只有一个已经订阅而另一个已经取消订阅。
我使用的代码是这样的:
1. Code for consumer subscribes to queue
connection = amqp.createConnection( { url: "http://guest@localhost:5672" }
connection.on('ready', function() {
connection.queue(queuename, {autoDelete: false}, function(queue) {
queue.bind('myexchange', '1');
queue.subscribe(mycallback).addCallback(function(ok) { qtag = ok.consumerTag; }
}
2. code for consumer unsubcribe
queue.unsubscribe(qtag);
queue.on('basicCancelOk', function() {
}
这个代码或实现所需序列的整体方法是否有任何问题,如前所述?