我想在jms模板中为单个队列配置使用者数量。我试图实现这个:JmsTemplate - define concurrency per queue?但是在ActiveMQQueue中,stiil显示为1。 我的混乱背景:
<bean id="parentContainer" abstract="true"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory" />
</bean>
<bean id="parentContainer" abstract="true"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory" />
</bean>
<bean id="playerStatsListener" parent="parentContainer">
<property name="destination" ref="playerStatsQueue" />
<property name="messageListener" ref="playerStatsService" />
<property name="concurrency" value="100" />
</bean>
<!-- Listeners -->
<bean id="playerStatsService" class="com.XXX.service.PlayerStatsService" />
<!-- Destinations -->
<bean id="playerStatsQueue" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg value="playerStatsQueue" />
另一个相关问题:&#34;听众&#34;之间是否存在差异?到&#34; messageListener&#34;属性?
答案 0 :(得分:0)
通常,您可以在DefaultMessageListenerContainer上设置concurrentConsumers
和maxConcurrentConsumers
。 concurrency
设置为此提供了便利范围。
但根据文档
通过“lower-upper”字符串指定并发限制,例如“5-10”,或 一个简单的上限字符串,例如“10”(下限为1英寸 这种情况)。
因此,如果你只说concurrency=100
,它仍然相当于1-100
,这可以解释为什么你会看到一个消费者。