我们正在使用@RabbitListener
来处理一条又一条消息并使用JavaMail发送生成的电子邮件到一些SMTP。
现在请求在特定消息数量后关闭与SMTP的连接。我已经阅读了有关ChannelAwareMessageListener
和手册ack的内容。通过这种方式,您可以使用单个确认来确认所有批处理消息,但我需要能够只读取一些消息,然后只确认那些将成功发送到SMTP的消息,其他消息需要使用。
在计算消息后如何关闭SMTP连接的其他任何想法?
答案 0 :(得分:1)
为未打包的投放标记保留一个列表,然后在准备好后使用channel.basicAck(goodTag, false)
和basicReject(badTag, false)
。
您应该只在侦听器线程上执行此操作。