在使用RabbitMQ队列时等待NodeJS中的异步任务

时间:2017-08-15 16:05:36

标签: node.js rabbitmq amqp

在node.js中使用amqp-lib(7)我在使用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到10个消息)。

提前致谢

0 个答案:

没有答案