在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秒钟,确认一切都完成了 .
是否可以等待该过程完成然后获得下一个过程? (工作人员在等待另一个进程时不应该消耗数十万条消息) .
提前致谢