node-amqp和async ack

我正在使用rabbitmq的项目。 我必须使用的队列(让我们称之为“testq”不时得到大约35000件必须处理的项目。

基本上(很短):

var q = new Queue(); q.subscribe('testq', { ack: true, prefetchCount: 100 }, function(doc, object, queueOptions, originalDocument) { //do some action originalDocument.acknowledge(); }); 

我现在的问题是:我想一次获得100条消息(prefetch count = 100),但是我什么时候知道所有的100条消息都已经被处理,这样我就可以确认并获得下100条消息了? “做一些行动块”是asynchronous🙁

感谢您的任何build议!

       

网上收集的解决方案 "node-amqp和async ack"

您一个接一个地确认消息,您不必担心获取下一个100条消息,而向您发送消息是一项中介工作。 do some actionasynchronous的do some action没有什么错,只是在完成some action之后做出确认,我想可以通过callback来完成,就像node.js中的所有事情一样。 类似的东西:

 q.subscribe( 'testq', { ack: true, prefetchCount: 100 }, function(doc, object, queueOptions, originalDocument) { doSomeAction(function() { originalDocument.acknowledge(); }); } );