使用 Spring AMPQ 批量接收
Batch receive with Spring AMPQ
我们正在使用 @RabbitListener
处理一封接一封的邮件并发送生成的电子邮件,使用 JavaMail 到某些 SMTP。
现在请求在特定数量的邮件后关闭与 SMTP 的连接。我已经阅读了一些关于 ChannelAwareMessageListener
和手动确认的内容。通过这种方式,您可以使用单个 ack 确认所有批处理消息,但我只需要能够读取一些消息,然后仅确认那些将成功发送到 SMTP 的消息,其他消息则需要死信。
关于如何在邮件计数后关闭 SMTP 连接的任何其他想法?
保留未确认的交付标签的列表,然后在您准备好时使用 channel.basicAck(goodTag, false)
和 basicReject(badTag, false)
。
您应该只在侦听器线程上执行此操作。
我们正在使用 @RabbitListener
处理一封接一封的邮件并发送生成的电子邮件,使用 JavaMail 到某些 SMTP。
现在请求在特定数量的邮件后关闭与 SMTP 的连接。我已经阅读了一些关于 ChannelAwareMessageListener
和手动确认的内容。通过这种方式,您可以使用单个 ack 确认所有批处理消息,但我只需要能够读取一些消息,然后仅确认那些将成功发送到 SMTP 的消息,其他消息则需要死信。
关于如何在邮件计数后关闭 SMTP 连接的任何其他想法?
保留未确认的交付标签的列表,然后在您准备好时使用 channel.basicAck(goodTag, false)
和 basicReject(badTag, false)
。
您应该只在侦听器线程上执行此操作。