多个Spring集成任务执行器从JMS队列中提取相同的消息

时间:2018-08-31 09:11:14

标签: spring spring-integration activemq ibm-mq spring-jms

我正在使用Spring集成来处理队列中的多个文件。

以下是我的配置:

#!/bin/bash

path="/home/asdf"

number_of_days=$((($(date '+%s')-$(date -d '1 month ago' '+%s'))/86400))
find "$path" -mtime +$number_of_days -delete

我的问题是:多个任务执行者正在从MQ中提取相同的消息。

我想要并行执行,但是不同的线程不应从MQ接收相同的消息。 我的配置有问题吗?我该如何解决?

我的MQ配置

<si-jms:message-driven-channel-adapter
    id="someRegionalInboundAdapter" channel="TP_SomeLogBinaryChannel_AUDIT"
    container="someContainer" header-mapper="parentLogHeaderMapper" auto-startup="true"  />
<bean id="someContainer"
    class="org.springframework.jms.listener.DefaultMessageListenerContainer">
    <property name="concurrentConsumers" value="10" />
    <property name="maxConcurrentConsumers" value="20" />
    <property name="connectionFactory" ref="cachingGlobalConnectionFactory" />
    <property name="destination" ref="someQ" />
    <property name="taskExecutor" ref="taskExecutor" />
    <property name="transactionManager" ref="transactionManager" />
    <property name="autoStartup" value="false" />
    <property name="errorHandler" ref="exceptionLogger"/>
</bean>
<task:executor id="taskExecutor" pool-size="20" queue-capacity="20" />  

0 个答案:

没有答案