gpt4 book ai didi

java - Spring RabbitMQ - xml配置 - 手动ack

转载 作者:行者123 更新时间:2023-12-02 12:35:52 24 4
gpt4 key购买 nike

我在 spring 中定义了rabbit的配置:

<rabbit:connection-factory id="amqpConnectionFactory" addresses="${amqp.host}:${amqp.port}"
thread-factory="rabbitThreadFactory"
cache-mode="CHANNEL"
channel-cache-size="25"
username="${amqp.user}"
password="${amqp.pass}"
virtual-host="${amqp.vhost}"/>

<rabbit:admin connection-factory="amqpConnectionFactory" id="rabbitAdmin"/>

<rabbit:topic-exchange id="motoTopicExchange" name="moto.ex.topic" >
<rabbit:bindings>
<rabbit:binding pattern="moto.*.speed" queue="motoQueue8"/>
<rabbit:binding pattern="moto.*.tour" queue="motoQueue9"/>
<rabbit:binding pattern="moto.*.naked" queue="motoQueue10"/>
</rabbit:bindings>
</rabbit:topic-exchange>

<rabbit:queue id="motoQueue8" name="moto.queue.8"/>
<rabbit:queue id="motoQueue9" name="moto.queue.9"/>
<rabbit:queue id="motoQueue10" name="moto.queue.10"/>

<rabbit:template id="rabbitTemplate"
connection-factory="amqpConnectionFactory"
retry-template="retryTemplate"
message-converter="rabbitJsonConverter"/>

<bean id="rabbitJsonConverter" class="org.springframework.amqp.support.converter.Jackson2JsonMessageConverter"/>

<rabbit:listener-container connection-factory="amqpConnectionFactory" message-converter="rabbitJsonConverter"
max-concurrency="10" acknowledge="auto">
<rabbit:listener ref="amqpService8" method="handleSimple" queues="motoQueue8"/>
<rabbit:listener ref="amqpService9" method="handleSimple" queues="motoQueue9"/>
<rabbit:listener ref="amqpService10" method="handleSimple" queues="motoQueue10"/>
</rabbit:listener-container>

监听器中的handleSimple方法消耗对象,例如Motorcycle(发送思想amqp时也有json转换)。

  1. 我如何手动确认传递给监听器的消息?
  2. 是否可以同时获取 MessageHeader 和对象(摩托车)?

我不想配置监听器思想注释。

谢谢

最佳答案

手动确认的需求是什么?需要它们是很不寻常的。容器会帮你处理。

要使用手动确认,您需要一个 ChannelAwareMessageListener 实现。

您还必须自己调用消息转换器。

关于java - Spring RabbitMQ - xml配置 - 手动ack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45151930/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com