JMS:流数据包的结尾

时间:2014-03-01 17:26:38

标签: java java-ee jms activemq message-queue


我有一个小要求。我将从一些输入文件中读取数据并将它们加载到jms队列中,让一些消费者从队列中读取数据包并处理它们。
有没有办法告诉消费者输入数据已经完成,他们可以在处理他们当前持有的数据后安全地关闭它们?

我正在使用Apache Active MQ。

谢谢,

1 个答案:

答案 0 :(得分:0)

JMS实施者具有消息分组功能,允许将消息组合在一起并按照该组中的顺序处理消息。组中的所有消息都由同一个消费者接收。组中的消息使用序列号排序。为此,JMS定义了JMSXGroupdIDJMSXGroupSeq属性。

您可以使用JMSXGroupID属性对从文件中读取的所有邮件进行分组,并为组中的每封邮件使用唯一的JMSXGroupSeq属性。消费者必须查找具有组ID的消息,并开始接收消息,直到JMSXGroupSeq属性值为-1。这标志着小组的结束。

示例和更多详情为here