我使用RabbitMQ作为需要保存到数据库的大量消息的缓冲区。消息进入,然后在另一端,脚本拉出一些并将它们作为批处理写入数据库。这个应用程序是用NodeJS编写的(使用Rabbit.js)。
虽然我还没有找到等待的方法,并且一次消耗一定数量的消息(比方说100),但我使用工作队列来接收Node中的消息,然后在一段时间之后写入消息已达到期/最大消息数。
如果应用程序死亡,或者以其他方式失败,我需要将消息重新发布到队列中。
因此我可以在队列中使用Rabbit.js中的ack()
函数,但这只是确认最近的消息,而不是让我选择一些消息来确认,而且我不情愿只需拨打ack()
100次即可获得正确数量的确认。
有没有办法确认使用Rabbit.js(或其他可与RabbitMQ一起使用的Node.js库)收到X消息?