我正在使用SimpleRabbitElstenerFactory,并试图动态减少/增加无法实现的汇总。任何人都可以帮助我吗?谢谢你
代码如下:
SimpleRabbitListenerContainerFactory factory;
@Bean
public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory()
{
factory=new SimpleRabbitListenerContainerFactory();
factory.setConnectionFactory(this.connectionFactory);
changeConsumers(2);
return factory;
}
public void changeConsumers(int minConsumers)
{
factory.setConcurrentConsumers(2);
}
***In another package***
if(messageCount>6000)
changeConsumers(5);
当消息计数是morethan 6000时,它将进入变更杂志的方法,但消费者没有更改为5。
在应用程序初始化期间使用工厂来创建侦听器容器对象;以后更改其属性不会更改其已经创建的容器上的属性。
您必须自行更改容器上的属性。
您可以使用RabbitListenerEndpointRegistry
bean访问容器;调用getListenerContainers
并迭代它们(或使用其id
获取单独的容器(。
将MessageListenerContainer
施加到SimpleMessageListenerContainer
以更改其属性。