2014-03-06 12 views
0

我想爲jms模板中的單個隊列配置多個使用者。我試圖實現這個:JmsTemplate - define concurrency per queue?但在ActiveMQQueue是stiil顯示1 我messanging方面:如何將併發配置爲單個隊列

<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" /> 

另一個相關的問題:是那裏的「聽衆」到「消息監聽」屬性之間的區別嗎?

回答

0

通常,您可以在DefaultMessageListenerContainer上設置concurrentConsumersmaxConcurrentConsumersconcurrency設置爲此提供了一個方便的範圍。

但根據文檔

經由「低級上的」字符串,例如指定併發限制「5-10」或 簡單的上限字符串,例如, 「10」(本例中 下限爲1)。

所以如果你只是說concurrency=100,它仍然等於1-100,這將解釋爲什麼你看到1個消費者。

+0

謝謝我只是想出了自己:)。所以我的解決方案是有幾個jms:listener-container具有不同的併發性。這看起來好嗎? – lior

+0

我從來沒有這個用例,但從你發佈的其他答案看,這似乎是做到這一點的方式。 :) –

相關問題