在 RabbitMq 中 assertQueue 和 send To Queue 有什么区别



我找到了在rabittMq中发送字符串和从队列中接收的示例,但我不清楚这些方法 -assertQueuesendToQueue

发送.js

var amqp = require('amqplib/callback_api');
amqp.connect('amqp://localhost', function(err, conn) {
conn.createChannel(function(err, ch) {
var q = 'hello';
var msg = 'Hello World! - '+i;
ch.assertQueue(q, {durable: false});                    
ch.sendToQueue(q, new Buffer(msg));
console.log(" [x] Sent %s", msg);
});
setTimeout(function() { conn.close(); process.exit(0) }, 1000);
});

接收.js

var amqp = require('amqplib/callback_api');
amqp.connect('amqp://localhost', function(err, conn) {          //amqp://localhost
conn.createChannel(function(err, ch) {
var q = 'hello';
ch.assertQueue(q, {durable: false});
console.log(" [*] Waiting for messages in %s. To exit press CTRL+C", q);
ch.consume(q, function(msg) {
console.log(" [x] Received %s", msg.content.toString());
}, {noAck: true});
});
});

从你的例子中,

assertQueue检查"hello"队列,如果它不存在,那么它将创建一个。

sendToQueue将消息放入"hello"队列。

assertQueue是队列的声明sendToQueue正在队列中推送您的消息

需要注意的是:声明队列是幂等的 - 只有在它不存在时才会被创建

最新更新