如何从SimpleMessageListenerContainer中的消息处理程序将basic.ack发送到Queue

时间:2014-08-08 08:06:32

标签: rabbitmq spring-amqp

在RabbitMQ api中,当auto-ack在通道上设置为false时,我们可以使用channel.basicAck(...)将确认发送回队列。

在Spring,我有一个SimpleMessageListenerContainer,我设置了AcknowledgeMode.MANUAL。和处理程序(SomeMessageHandler处理String类型)我设置为MessageListenerAdapter的侦听器。我无法找到将确认发送回队列的任何地方(任何组件)。是否有一个组件需要自动装配到我的处理程序来处理这个问题?或者,当确认模式设置为手动时,处理此确认的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

使用MANUAL时,您无法使用MessageListenerAdapter,您必须实施ChannelAwareMessageListener。但是,Spring AMQP很少需要MANUAL ack,当交付完成(或交给另一个线程)时,容器将成功处理(或在失败时拒绝)。