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议!
您一个接一个地确认消息,您不必担心获取下一个100条消息,而向您发送消息是一项中介工作。 do some action
asynchronous的do some action
没有什么错,只是在完成some action
之后做出确认,我想可以通过callback来完成,就像node.js中的所有事情一样。 类似的东西:
q.subscribe( 'testq', { ack: true, prefetchCount: 100 }, function(doc, object, queueOptions, originalDocument) { doSomeAction(function() { originalDocument.acknowledge(); }); } );