Jms activemq如何以特殊顺序从队列中获取消息

Jms activemq如何以特殊顺序从队列中获取消息,jms,activemq,Jms,Activemq,我有一个队列,消息的属性名为orderno 如何从按顺序排序的队列中提取消息no您真正想做的是 您可以使用与ActiveMQ捆绑在一起的ApacheCamel实现这一点 <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="activemq:queue:unordered"/> <resequence>

我有一个队列,消息的属性名为orderno
如何从按顺序排序的队列中提取消息no

您真正想做的是

您可以使用与ActiveMQ捆绑在一起的ApacheCamel实现这一点

<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中的“camel.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>

in.header.orderno
然后只需确保该文件包含在ActiveMQ配置中,例如ActiveMQ.xml:

<import resource="camel.xml"/>

请注意,此设置将从“无序”队列中以任意顺序读取消息,而应用程序应从“有序”队列中读取重新排序的消息