Node.js 使用RabbitMQ队列时,在NodeJS中等待异步任务

Node.js 使用RabbitMQ队列时,在NodeJS中等待异步任务,node.js,rabbitmq,amqp,Node.js,Rabbitmq,Amqp,在node.js(7)中使用amqp库时,我在从RabbitMQ队列消费时,在等待异步任务时遇到问题 比如说, channel.consume(exchange_name, doWork, { noAck: false }); function doWork(msg) { log.info(JSON.parse(msg.content.toString())); setTimeout(function () {

在node.js(7)中使用amqp库时,我在从RabbitMQ队列消费时,在等待异步任务时遇到问题

比如说,

    channel.consume(exchange_name, doWork, {
        noAck: false
    });

    function doWork(msg) {
        log.info(JSON.parse(msg.content.toString()));
        setTimeout(function () {
            log.info("   Done");
            channel.ack(msg);
        }, 2000);
    }
这应该是,AFAIK从队列中检索消息,对其进行处理,然后确认该过程已完成并成功

但是,当我在一个包含1000条消息的队列中运行它时,它将捕获所有1000条消息并启动进程。然后2秒钟后,确认一切都已完成

是否可以等待流程完成,然后获取下一个流程?(工作进程在等待另一个进程时,不应消耗成千上万条消息中的10条)


“提前感谢”

我使用AMQP已经有一段时间了,但请看一看。@robertklep这是我缺少的功能。通道预取(1)防止它抓取所有内容。