【问题标题】:what is the difference between assertQueue and send To Queue in RabbitMqRabbitMq 中的 assertQueue 和 send To Queue 有什么区别
【发布时间】:2018-05-14 05:58:34
【问题描述】:

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

send.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);
});

receive.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});
  });
});

【问题讨论】:

    标签: node.js rabbitmq amqp


    【解决方案1】:

    从你的例子中,

    assertQueue 检查“hello”队列,如果不存在则创建一个。

    sendToQueue 将消息放入“hello”队列。

    【讨论】:

    • 谢谢。文档中没有任何地方说如果队列不存在,它会创建一个。奇怪...
    【解决方案2】:

    assertQueue 是队列声明,sendToQueue 将您的消息推送到队列中

    注意:声明一个队列是幂等的 - 只有当它不存在时才会创建它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-18
      • 1970-01-01
      • 2020-07-11
      • 1970-01-01
      • 1970-01-01
      • 2022-06-24
      相关资源
      最近更新 更多