Nodejs和amqplib:无法预取多条消息

时间:2015-03-10 00:27:59

标签: node.js rabbitmq

所以,我正在尝试学习如何在node.js中创建一个rabbitmq使用者。我一直在关注rabbitmq网站上的教程。

我正在使用队列,我想一次获取多条消息。我尝试将5传递给ch.prefetch,但它仍然只为每次消费呼叫提取一条消息。

我正在使用的代码是:

var amqp = require('amqplib');

amqp.connect('amqp://localhost').then(function(conn) {
  process.once('SIGINT', function() { conn.close(); });
  return conn.createChannel().then(function(ch) {
    var ok = ch.assertQueue('task_queue', {durable: true});
    ok = ok.then(function() { ch.prefetch(5); });
    ok = ok.then(function() {
      ch.consume('task_queue', doWork, {noAck: false});
      console.log(" [*] Waiting for messages. To exit press CTRL+C");
    });
    return ok;

    function doWork(msg) {
      var body = msg.content.toString();
      console.log(" [x] Received '%s'", body);
      var secs = body.split('.').length - 1;
      //console.log(" [x] Task takes %d seconds", secs);
      setTimeout(function() {
        console.log(" [x] Done");
        ch.ack(msg);
      }, secs * 1000);
    }
  });
}).then(null, console.warn);

从此示例中here

我错过了什么吗?为什么不一次检索多条消息?

由于

0 个答案:

没有答案