RabbitMQ成批使用消息并一次确认所有消息

h7wcgrx3  于 2022-11-08  发布在  RabbitMQ
关注(0)|答案(1)|浏览(222)

我有一个RabbitMQ队列,我在其中发布了数千条消息。我需要一个后台服务,它将:

  • 以100封邮件为一批检索邮件
  • 将这100条消息存储在数据库中
  • 一次确认所有100条消息
  • 继续处理下一批100条消息

我正在使用RabbitMQ客户机来监听消息,但是我不知道如何“批处理”它们。
有没有人有一个工作的例子,如何获得我的消息100-100在一次和ACK他们都后,他们已经保存在一个数据库?
提前谢谢你

k2arahey

k2arahey1#

您想使用“预取”和“多确认”功能-

下面是您将在代码中执行的操作:

  • 打开连接和通道
  • 将通道预取设置为100
  • 启动使用者。将开始使用消息调用为使用者注册的回调。您必须将这些消息保存在列表或其他数据结构中
  • 收到100封邮件后,保存第100封邮件的投递标记,然后进行数据库工作。
  • 通过将“multi ack”设置为true来确认100条消息,并使用第100条消息的交付标记。
  • RabbitMQ将以相同的方式发送接下来的100条消息
    **注意:**RabbitMQ团队监控rabbitmq-users邮件列表,仅在某些时候回答StackOverflow上的问题。

相关问题