本文介绍了JmsTemplate-定义每个队列的并发性?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
到目前为止,我只能在jms连接工厂中找到并发设置:
So far i've only been able to find concurrency setting in the jms connection factory:
<jms:listener-container connection-factory="myConnectionFactory"
task-executor="myTaskExecutor"
destination-resolver="myDestinationResolver"
transaction-manager="myTransactionManager"
concurrency="10">
是否可以为单个队列配置使用者数量?即类似:
Is it possible to configure the number of consumers for a single queue? i.e something like:
<jms:listener destination="playerStatsQueue" ref="playerStatsService"
method="onMessage" concurrency="100" />
谢谢!〜
推荐答案
请勿使用名称空间,而应使用抽象父级DefaultMessageListenerContainer
,并为每个侦听器创建一个子实例.这样,您可以调整所需的所有属性.
Do not use the namespace but an abstract parent DefaultMessageListenerContainer
and create one child instance per listener. That way you can tweak all the properties you need.
<bean id="parentContainer" abstract="true"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory"/>
<property name="messageListener" ref="messageListener"/>
<property name="transactionManager" ref="transactionManager"/>
</bean>
<bean id="playerStatsListener parent="parentContainer">
<property name="destination" ref="playerStatsQueue"/>
<property name="listener" ref="playerStatsService"/>
<property name="concurrency" value="100"/>
</bean>
这篇关于JmsTemplate-定义每个队列的并发性?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!