【发布时间】:2017-01-19 21:49:02
【问题描述】:
使用并发“5”线程的侦听器实现 Spring JMS,
<jms:listener-container container-type="default" concurrency="5-10" connection-factory="cachingConnectionFactory" >
<jms:listener destination="TEST.FOO" ref="messageListener" />
</jms:listener-container>
当我删除 5 条消息时,有 5 个线程正在侦听,我可以阅读这些消息。
我的问题是如何合并所有 5 条消息,是否可以编写一些构建器,构建器可以等待某个时间,所以当在那段时间内收到任何消息时,我可以合并所有消息?
代码:
long startTime = 0;
if (messageCount == 0) {
startTime = System.currentTimeMillis();
}
messageCount ++;
if (messageCount < batchSize && (startTime > (System.currentTimeMillis() - maximumBatchWaitTime))) { // Or if some batch timelimit say
line += stringMessage;
reached = true; // this is volatile variable ,messageCount also volatile variable
}
System.out.println(line);
try {
if (reached) {
messageCount = 0;
line = "";
execService.createExecFile(line);
}
} catch (final Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
问候, Rj
【问题讨论】:
-
你能详细解释一下合并所有5条消息是什么意思吗
-
将字符串消息从每个线程附加到新行
标签: spring-jms