我想启动一些线程,这些线程将执行一些长时间的操作,并且还尝试确保消息的可靠性。
也许我用错误的方式使用消息存储。谢谢有人能帮助我。
这是我的情况。
<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