java - JmsTemplate - 定义每个队列的并发性?

标签 java spring jms activemq jmstemplate

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

相关文章:

java - 在java中搜索文本文件中的字符串时出现问题

java - 如何在Spring Security中获取用户信息?

java - 运行并行作业时如何安全地将参数从 Tasklet 传递到步骤

java - Spring Boot 应用程序在 AWS Lambda 中运行时抛出 MultipartException

java - 如何在java中初始化一个二维字符串数组

java - 如何计算循环一次迭代的执行时间?

java - 用于异步调用的 Apache Camel

jms - Camel jms 到外部 activeMQ 的请求-回复给出 javax.jms.InvalidDestinationException : Cannot publish to a deleted Destination:

java - 如果我将递归调用除以另一个,是否会出现无限循环?

java - 单个QueueConnection可以在多线程环境中使用吗?