【问题标题】:JmsTemplate - define concurrency per queue?JmsTemplate - 定义每个队列的并发性?
【发布时间】:2014-03-18 14:03:22
【问题描述】:

到目前为止,我只能在 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" />

谢谢!~

【问题讨论】:

  • 你为什么需要这个?
  • 我有一个特定的队列,我想为其调整消费者数量

标签: java spring jms activemq jmstemplate


【解决方案1】:

不要使用命名空间,而是使用抽象父 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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-28
    • 2017-04-16
    • 2019-01-16
    • 2018-08-01
    • 1970-01-01
    • 2019-08-05
    • 2023-03-25
    • 2021-12-28
    相关资源
    最近更新 更多