我已经定义了一个Route
,它消耗队列中的消息没有任何问题,现在我正在尝试使用已经在队列中的消息12小时,我有了使用{的想法{1}},但不知道如何将其与selector
一起使用以满足12小时标准。
这是JMSTimestamp
:
Route
这是日期bean
<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>
答案 0 :(得分:0)
根据您的解释,我认为您的选择器出了问题。
JMSTimestamp%3D${date.time}
表示JMSTimestamp = ${date.time}
这意味着您正在查找包含完全 JMSTimestamp
的所有邮件。由于Date.getTime()
以毫秒为单位返回时间,因此您不太可能从队列中检索任何消息。
我认为你应该尝试类似的事情:
JMSTimestamp > current date - 12 hours (pseudo code for selector)
我希望这会对你有所帮助。