使用id添加多个listener-container似乎不起作用

时间:2014-06-25 09:19:01

标签: java rabbitmq spring-amqp

我有一个rabbitMQ配置,其中我需要有两个独立的侦听器容器,每个容器都有一组侦听器。这是来自rabbitmq-context.xml的片段:

<rabbit:listener-container
connection-factory="connectionFactory" message-converter="jsonMessageConverter" 
auto-startup="true" 
acknowledge="manual"
requeue-rejected="true"
concurrency="5"
task-executor="myTaskExecutor" >
       <rabbit:listener queues="Queue1" ref="myQ1Listener" method="onMessage"/>
</rabbit:listener-container>

<rabbit:listener-container
connection-factory="connectionFactory" message-converter="jsonMessageConverter" 
auto-startup="true" 
acknowledge="manual"
requeue-rejected="false"
concurrency="5"
task-executor="myTaskExecutor" >
       <rabbit:listener queues="Queu2" ref="myQ2Listener" method="onMessage"/>
</rabbit:listener-container>

如果指定没有id ,则所有侦听器都会在初始化时启动。

如果我继续并为其中一个指定一个id(我想在另一个bean中引用),则另一个listener-container(没有id)不会被初始化。

如果我用这两个侦听器容器指定id(并且不在任何地方引用这些id),则只初始化来自其中一个侦听器容器的侦听器。

任何人都可以帮我理解是否存在配置问题或者这是RabbitMQ中的错误吗?

1 个答案:

答案 0 :(得分:0)

根据问题https://jira.spring.io/browse/AMQP-332已解决此问题(Adding multiple listeners which will listen to different RabbitMQ queue not working)。

所以,请显示错误的配置并尝试升级到最新的Spring AMQP版本。

我们有类似的test-case。我刚刚从被链接的id元素中删除了<rabbit:listener>,并且传递了ListenFromAutoDeleteQueueTests

请检查Spring jar的版本并尝试使用最新版本。

相关问题