在RabbitMQ api中,当auto-ack
在通道上设置为false时,我们可以使用channel.basicAck(...)
将确认发送回队列。
在Spring,我有一个SimpleMessageListenerContainer
,我设置了AcknowledgeMode.MANUAL
。和处理程序(SomeMessageHandler
处理String类型)我设置为MessageListenerAdapter
的侦听器。我无法找到将确认发送回队列的任何地方(任何组件)。是否有一个组件需要自动装配到我的处理程序来处理这个问题?或者,当确认模式设置为手动时,处理此确认的正确方法是什么?
答案 0 :(得分:2)
使用MANUAL时,您无法使用MessageListenerAdapter
,您必须实施ChannelAwareMessageListener
。但是,Spring AMQP很少需要MANUAL ack,当交付完成(或交给另一个线程)时,容器将成功处理(或在失败时拒绝)。