【问题标题】:How to send basic.ack to Queue from message handler in SimpleMessageListenerContainer如何从 SimpleMessageListenerContainer 中的消息处理程序将 basic.ack 发送到队列
【发布时间】:2014-08-11 21:31:00
【问题描述】:

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

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

【问题讨论】:

    标签: rabbitmq spring-amqp


    【解决方案1】:

    使用MANUAL acks时,不能使用MessageListenerAdapter,必须实现ChannelAwareMessageListener。但是,Spring AMQP 很少需要手动确认,当交付完成(或移交给另一个线程)时,容器会在成功时为您处理(或在失败时拒绝)。

    【讨论】:

      猜你喜欢
      • 2019-01-15
      • 1970-01-01
      • 2013-03-26
      • 2019-03-06
      • 2016-03-30
      • 1970-01-01
      • 2020-02-17
      • 1970-01-01
      • 2013-11-15
      相关资源
      最近更新 更多