Jer*_*och 6 activemq-classic jms apache-camel
我正在尝试在Blueprint XML Camel路由中设置消息过期.我想要设置为到期的值保存在消息体(protobuf)中.
这是我的代码: -
<setHeader headerName="AMQ_SCHEDULED_DELAY">
<method bean="NotificationScheduler" method="postponeSending" />
</setHeader>
<setHeader headerName="JMSExpiration">
<method bean="NotificationScheduler" method="getExpiry" />
</setHeader>
<setHeader headerName="ExpirationTest">
<method bean="NotificationScheduler" method="getExpiry" />
</setHeader>
<to uri="activemq:notifications.splitter" />
Run Code Online (Sandbox Code Playgroud)
正如您在下面的屏幕截图中看到的,我成功设置了三个标题中的两个,但"JMSExpiration"的设置(根据此主题)没有任何效果.

我知道我也可以使用收件人列表模式动态设置uri - 即从消息数据中提取到期日并附加?timeToLive=...选项.然而,这对我来说似乎有点笨拙.
有没有办法通过XML中的setHeader设置过期?
谢谢,
J.
将你的 uri 更改为:activemq:notifications.splitter?preserveMessageQos=true你应该没问题。
某些 JMS 标头可以“手动”覆盖,就像您尝试使用此选项一样。
请注意,您可能需要采取一些预防措施,因为如果您正在侦听一个 JMS 端点,则到达的消息将填充 JMS 标头,并且当您在“to”中发送消息时,消息将保留JMSDeliveryMode,JMSExpiration和JMSPriority。这可能是也可能不是您想要的。
| 归档时间: |
|
| 查看次数: |
4943 次 |
| 最近记录: |