Apache camel Camel-ActiveMQ:使用基于JMSTimestamp的消息
我已经定义了一个Apache camel Camel-ActiveMQ:使用基于JMSTimestamp的消息,apache-camel,activemq,Apache Camel,Activemq,我已经定义了一个路由,它可以毫无问题地使用队列中的消息,而现在我正在尝试使用队列中已存在12小时的消息,我想到了使用选择器,但不知道如何将其与jmstiestamp一起使用,以满足12小时的标准 这是路线: <route id="INBOUND.RECEIVE.IN"> <from uri="activemq:queue:QXL.INBOUND.RECEIVE.IN?selector=JMSTimestamp%3D${date.time}&
路由
,它可以毫无问题地使用队列中的消息,而现在我正在尝试使用队列中已存在12小时的消息,我想到了使用选择器
,但不知道如何将其与jmstiestamp
一起使用,以满足12小时的标准
这是路线
:
<route id="INBOUND.RECEIVE.IN">
<from
uri="activemq:queue:QXL.INBOUND.RECEIVE.IN?selector=JMSTimestamp%3D${date.time}&concurrentConsumers=10&destination.consumer.prefetchSize=0&deliveryPersistent=true&username=admin01&password=001!admin01001!" />
<pipeline>
<bean method="inboundReceive" ref="logipalServices"/>
</pipeline>
</route>
这是枣豆
<bean id="date" class="java.util.Date" scope="prototype"/>
根据您的解释,我认为您的选择器有问题
jmsistestamp%3D${date.time}
表示jmsistestamp=${date.time}
这意味着您正在查找带有精确的jmstiestamp
的所有消息。由于以毫秒为单位返回时间,因此不太可能从队列中检索任何消息
我想你应该试试这样的东西:
JMSTimestamp > current date - 12 hours (pseudo code for selector)
我希望这对你有帮助