我目前正在尝试将Spring AMQP侦听器容器传递给bean,因为我需要动态更改侦听器的最大数量(但是我有内存限制,因此我需要比侦听器容器提供的更多控制权。框)。
我的想法是创建一个每隔一秒左右调用一次的bean manageListenerContainer,并相应地更改concurrentConsumers属性。
但我无法弄清楚如何将listenerContainer传递给我的bean, 因为id属性已经从一些版本的rabbit:listener-container中删除了。
这是我的监听器容器:
<rabbit:listener-container connection-factory="connectionFactory"
error-handler="exHandler">
<rabbit:listener ref="foo" method="listen" queue-names="myQueue" />
</rabbit:listener-container>
我想要注入它的bean:
<bean id="manageListenerContainer" class="background.ManageListenerContainer">
<property name="listenerContainer" ref="listenerContainer"></property>
</bean>
我发现我可以像这样实例化一个新的listenerContainer
<bean class="org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer" id="listenerContainer">
<constructor-arg ref="connectionFactory" />
</bean>
但这与连接本身使用的对象不同。
任何人都可以给我一些指示吗?
奥利
答案 0 :(得分:1)
为此目的,嵌套的rabbit:listener
代码有一个id
。
封闭的listener-container
只是公共属性的逻辑表示。真正的ListenerContainer
实际上基于rabbit:listener
。
答案 1 :(得分:0)
这就是诀窍:
$currentTime....