在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个消息)。
提前致谢