我们可以在使用@JmsListener 机制时访问 getConcurrentConsumers 方法吗
Can we access getConcurrentConsumers method while using @JmsListener Mechanism
我正在使用@JmsListener 来使用队列中的消息。由于这需要 DefaultJmsListenerContainerFactory 作为连接工厂,我们可以将并发设置为
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory ()
factory.setConcurrency("1-1");
问题是我们能否以编程方式获取并发消费者的数量?
就像我们使用 DefaultMessageListenerContainer 一样,我们可以使用 getConcurrentConsumers() 方法获取并发消费者,我们也可以设置使用方法 setConcurrentConsumers().
的消费者
我已经使用 JmsListenerEndPointRegistry 来获取对容器的引用并访问生命周期方法,如 start() 、 stop() 但是我们可以使用这个 regisrty 设置消费者吗?
或者是否有任何不同的方式可以让我们访问我的 DefaultMessageListenerContainer 提供的方法并使用基于注释的机制,即 @JmsListener?
您可以在 @JmsListener
本身上设置并发;它会覆盖工厂配置的任何内容。
/**
* The concurrency limits for the listener, if any. Overrides the value defined
* by the container factory used to create the listener container.
* <p>The concurrency limits can be a "lower-upper" String — for example,
* "5-10" — or a simple upper limit String — for example, "10", in
* which case the lower limit will be 1.
* <p>Note that the underlying container may or may not support all features.
* For instance, it may not be able to scale, in which case only the upper limit
* is used.
*/
String concurrency() default "";
您可以将侦听器容器从 regisgtry.getListenerContainer(id)
转换为 DefaultMessageListenerContainer
以调用 getConcurrentConsumers()
。
我正在使用@JmsListener 来使用队列中的消息。由于这需要 DefaultJmsListenerContainerFactory 作为连接工厂,我们可以将并发设置为
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory ()
factory.setConcurrency("1-1");
问题是我们能否以编程方式获取并发消费者的数量?
就像我们使用 DefaultMessageListenerContainer 一样,我们可以使用 getConcurrentConsumers() 方法获取并发消费者,我们也可以设置使用方法 setConcurrentConsumers().
的消费者我已经使用 JmsListenerEndPointRegistry 来获取对容器的引用并访问生命周期方法,如 start() 、 stop() 但是我们可以使用这个 regisrty 设置消费者吗?
或者是否有任何不同的方式可以让我们访问我的 DefaultMessageListenerContainer 提供的方法并使用基于注释的机制,即 @JmsListener?
您可以在 @JmsListener
本身上设置并发;它会覆盖工厂配置的任何内容。
/**
* The concurrency limits for the listener, if any. Overrides the value defined
* by the container factory used to create the listener container.
* <p>The concurrency limits can be a "lower-upper" String — for example,
* "5-10" — or a simple upper limit String — for example, "10", in
* which case the lower limit will be 1.
* <p>Note that the underlying container may or may not support all features.
* For instance, it may not be able to scale, in which case only the upper limit
* is used.
*/
String concurrency() default "";
您可以将侦听器容器从 regisgtry.getListenerContainer(id)
转换为 DefaultMessageListenerContainer
以调用 getConcurrentConsumers()
。