gpt4 book ai didi

JMSExpiration 与 TimeToLive

转载 作者:行者123 更新时间:2023-12-02 04:02:34 25 4
gpt4 key购买 nike

我正在尝试在 Blueprint XML Camel 路由中设置消息过期时间。我想要设置为过期的值保存在消息正文中 (a 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" />

正如您从下面的屏幕截图中看到的,我成功设置了三个 header 中的两个,但“JMSExpiration”的设置(根据 this thread )没有效果。

ActiveMQWeb snippet

我知道我可以选择使用收件人列表模式来动态设置 uri - 即从消息数据中提取过期时间并附加 ?timeToLive=... 选项。然而,这对我来说似乎有点笨拙。

有没有办法通过 XML 中的 setHeader 设置过期时间?

谢谢

J.

最佳答案

将您的 uri 更改为:activemq:notifications.splitter?preserveMessageQos=true 应该没问题。

某些 JMS header 可以像您尝试使用此选项一样“手动”覆盖。

请注意,您可能需要采取一些预防措施,因为如果您正在监听一个 JMS 端点,则到达的消息将填充 JMS header ,并且当您在“to”中发送消息时,该消息将保留JMSDeliveryModeJMSExpirationJMSPriority。这可能是也可能不是您想要的。

关于JMSExpiration 与 TimeToLive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15850593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com