使用多线程从JMS队列中消耗消息

时间:2016-01-29 10:47:56

标签: spring-integration

我的项目中要求使用线程并行处理JMS消息。目前我们的项目工作方式如下:当文件放在目录中时,轮询器生成消息,出站适配器创建JMS消息并将其发送到businessQueue。 JMS侦听器侦听队列中的消息并启动批处理作业以处理该文件。所以一次只处理1个文件。

<jms:listener-container concurrency="1"
        acknowledge="client" container-type="default" destination-type="queue"
        connection-factory="cachingJmsConnectionFactory" cache="auto">
        <jms:listener id="businessFileJmsListener" ref="businessFileJmsReceiver"
            method="onMessage" destination="${BUSINESS_JMS_QUEUE_NAME}" />
    </jms:listener-container>

要求是使用线程从队列中读取JMS消息并并行处理文件。例如,我们必须一次读取3条消息并启动3个批处理作业并使用线程处理3个文件。在上面的配置中,有一个称为并发的属性。我不知道我们是否增加该物业的数量是否有效?请建议是否有任何方法可以实现我们的要求。我的最终要求是一次从队列中读取3条JMS消息,并一次处理3个文件。请建议。感谢。

1 个答案:

答案 0 :(得分:0)

是的,concurrency="3"将在3个不同的主题上收到消息。

相关问题