使用 Spring AMPQ 批量接收

Batch receive with Spring AMPQ

我们正在使用 @RabbitListener 处理一封接一封的邮件并发送生成的电子邮件,使用 JavaMail 到某些 SMTP。

现在请求在特定数量的邮件后关闭与 SMTP 的连接。我已经阅读了一些关于 ChannelAwareMessageListener 和手动确认的内容。通过这种方式,您可以使用单个 ack 确认所有批处理消息,但我只需要能够读取一些消息,然后仅确认那些将成功发送到 SMTP 的消息,其他消息则需要死信。

关于如何在邮件计数后关闭 SMTP 连接的任何其他想法?

保留未确认的交付标签的列表,然后在您准备好时使用 channel.basicAck(goodTag, false)basicReject(badTag, false)

您应该只在侦听器线程上执行此操作。