设置TTL Apache Camel JAva DSL

时间:2013-03-19 18:45:01

标签: apache-camel

使用Java DSL时如何设置消息的TTL?

我有这样的事情:

...
from ("timer:something?delay=3000&period=15000")
   ...
   .to("{{some.property}}")
   .end()
...

我想设定一个时间来发送消息。

2 个答案:

答案 0 :(得分:1)

我认为TTL意味着生存时间。

在Camel中,这是特定于组件的处理方式。有些组件支持这一点,而其他组件则不支持。

您应该查看您使用的组件的文档,它支持的内容。

如果您使用JMS组件,则它具有记录的timeToLive选项:http://camel.apache.org/jms

请注意“客户端和服务器时钟可能不同步”的问题。 Camel JMS页面上有一些细节。一些消息代理有办法同步时钟,例如Apache ActiveMQ及其时间戳插件:http://activemq.apache.org/timestampplugin.html

答案 1 :(得分:0)

我最终设置了正在创建的消息的JMSExpiration头字段,类似于以下

.setHeader("JMSExpiration", constant(System.currentTimeMillis() + 1000))

我们正在使用Apache ActiveMQ 5.7。