在RabbitMQ中获取当前未确认的使用者消息



我正试图优雅地关闭一个正在消耗RabbitMQ消息的进程。我知道我可以使用Channel.cancel来阻止RabbitMQ向进程发送任何新消息,但我也需要处理任何挂起的、未确认的消息。我可以调用Channel.nackAll并重新对所有消息进行排队,但如果我能等到所有挂起的消息(已消耗但尚未确认/nack的消息(都完成,那就更好了。

有什么想法可以实现吗?

  • 取消消费者
  • 工作完成后确认您当前正在"处理"的消息
  • 完成上述操作后,关闭通道和连接。任何未确认的内容都将由RabbitMQ重新排队

注意:RabbitMQ团队监控rabbitmq-users邮件列表,有时只回答StackOverflow上的问题