我有一个队列,消息的属性名称为orderno 如何从orderno
排序的队列中获取消息答案 0 :(得分:2)
你想要做的是resequencer enterprise integration pattern
您可以使用与ActiveMQ捆绑在一起的Apache Camel来实现这一目标。
您需要做的是将以下内容添加到ActiveMQ中的'cameral.xml'配置文件中。
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="activemq:queue:unordered"/>
<resequence>
<simple>in.header.orderno</simple>
<to uri="activemq:queue:ordered" />
<stream-config capacity="5000" timeout="4000"/>
</resequence>
</route>
</camelContext>
然后确保该文件包含在ActiveMQ配置中,例如activemq.xml:
<import resource="camel.xml"/>
请注意,此设置将从“无序”队列中以任何顺序读取消息,而您的应用程序应从“已排序”队列中读取重新排序的消息。