Ich versuche zu meinem Hörer zu hören die Warteschlange nur 1 Nachricht nach dem ich meine Verbraucher sofort entfernen möchte. Wie kann ich das erreichen? Hier ist der Code.Entfernen Sie einen Verbraucher in RabbitMQ mit nodeJS
queueListener:function(Queue,timeOut){
var deferred=sails.promise.defer(),timer,data;
sails.amqp.connect('amqp://localhost', function(err, conn) {
conn.createConfirmChannel(function(err, ch) {
if(err){
conn.close();
deferred.reject(err);
}else{
ch.assertQueue(Queue, {durable: true});
ch.prefetch(1);
ch.consume(Queue,function(msg){
data=msg.content.toString();
clearTimeout(timer);
ch.ack(msg);
setTimeout(function(){
conn.close();
deferred.resolve(data);
},0);
},{noAck: false});
}
});
timer=setTimeout(function(){
conn.close();
deferred.reject(new Error("Nothing in the Queue."));
},timeOut-5);
});
return deferred.promise;
}
in der obigen Queue ist die Warteschlange wird es hören und timeOut darstellt, wie lange meine Zuhörer hören werden. Wenn es eine Nachricht hört, möchte ich aufhören zu hören. Und zum weiteren Hören werde ich beim nächsten Mal die Funktion queueListner aufrufen. Obwohl ich conn.close()
gemacht habe, aber auf der Benutzeroberfläche zeigt es immer noch Verbraucher.
können Sie Fragen Sie auch in der RabbitMQ-Benutzergruppe unter https://groups.google.com/forum/#!forum/rabbitmq-users nach, und überprüfen Sie die Versionshinweise auf behobene Fehler (falls Sie eine ältere Version verwenden) – mjn
Ich habe gefragt https://groups.google.com/forum/#!topic/rabbitmq-users/VlSKLfSWT7g aber Wenn jemand eine Lösung hat, bitte teilen. – vkstack