到目前为止,我只能在 jms 连接工厂中找到并发设置:
<jms:listener-container connection-factory="myConnectionFactory"
task-executor="myTaskExecutor"
destination-resolver="myDestinationResolver"
transaction-manager="myTransactionManager"
concurrency="10">
是否可以配置单个队列的消费者数量?即类似:
<jms:listener destination="playerStatsQueue" ref="playerStatsService"
method="onMessage" concurrency="100" />
谢谢!~
最佳答案
不要使用命名空间,而是使用抽象父级 DefaultMessageListenerContainer
并为每个监听器创建一个子实例。这样您就可以调整您需要的所有属性。
<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>
关于java - JmsTemplate - 定义每个队列的并发性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21860195/