我的项目中要求使用线程并行处理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个文件。请建议。感谢。
答案 0 :(得分:0)
是的,concurrency="3"
将在3个不同的主题上收到消息。