消息驱动通道适配器和多线程

时间:2015-05-06 08:07:27

标签: spring-integration

在我的项目中,我有一千个队列,我希望每个队列有一个消费者同步使用消息。

我有一个任务执行程序,其中线程池大小为20,在数千个消息驱动通道适配器

之间共享

当我启动我的应用程序时,我必须等待40分钟才能看到所有队列侦听器已启动。我不知道问题在哪里?

<int-jms:message-driven-channel-adapter
            id="jmsAdapter"
            acknowledge="transacted"
            connection-factory="cachedConnectionFactory"
            destination="destination"
            channel="inboundChannel"
            max-concurrent-consumers="1"
            concurrent-consumers="1"
            auto-startup="false"
            task-executor="taskExecutor"/>

<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
        <property name="corePoolSize" value="20"/>
        <property name="maxPoolSize" value="20"/>
    </bean>

谢谢

1 个答案:

答案 0 :(得分:0)

您不能跨容器共享线程 - 每个消费者都需要一个专用线程。默认情况下,容器线程将在JMS客户端代码中阻塞5秒钟,等待消息。