不同的轮询器从jdbc-message-store获得了相同的消息

时间:2018-08-22 06:56:38

标签: spring-integration

我想启动一些线程,这些线程将执行一些长时间的操作,并且还尝试确保消息的可靠性。

也许我用错误的方式使用消息存储。谢谢有人能帮助我。

这是我的情况。

    <int-jdbc:message-store id="messageStore" data-source="dataSource" />
    <int:channel id="reliableChannel">
        <int:queue message-store="messageStore" />
    </int:channel>

    <int:service-activator id="test1"
                           ref="testServiceActivator"
                           method="handleMessage"
                           input-channel="reliableChannel">
        <int:poller fixed-rate="5000" max-messages-per-poll="1">
            <int:transactional />
        </int:poller>
    </int:service-activator>

    <int:service-activator id="test2"
                           ref="testServiceActivator"
                           method="handleMessage"
                           input-channel="reliableChannel">
        <int:poller fixed-rate="5000" max-messages-per-poll="1">
            <int:transactional />
        </int:poller>
    </int:service-activator>

服务激活器:

public void handleMessage(Message<DataPack> message) {
    System.out.println(Thread.currentThread() + " " + message.getHeaders().getId());
}

有时会出现相同的按摩。

Thread[poolTaskExecutor1-25,5,main] 034074b6-68d8-18b7-eef1-ad28decc0c3a
Thread[poolTaskExecutor1-22,5,main] 034074b6-68d8-18b7-eef1-ad28decc0c3a

0 个答案:

没有答案