2013-03-19 92 views
-1

如何在使用Java DSL时设置消息的TTL?设置TTL Apache Camel JAva DSL

我有这样的事情:

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

我想设置一个时间住在发送的消息。

+1

计时器组件刚刚创建了一个事件,它没有任何事件发生在这个事件的生命周期中,我想在其他组件上使用TTL,你可以指定组件发送事件通过 – dursun 2013-03-19 23:55:27

+0

省略了创建消息的逻辑。正在创建的消息是一个通过对象消息发送的自定义可序列化对象。 – wxkevin 2013-03-20 11:10:56

回答

0

我结束了设置消息的JMSExpiration头字段创建类似以下

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

我们使用Apache ActiveMQ 5.7。

0

我假设TTL的意思是生存时间。

在骆驼这是组件具体如何处理这一点。一些组件支持这一点,而其他组件则不支持。

你应该检查你使用的组件的文档,它支持什么。

如果你使用JMS组件然后它作为记录的传输TimeToLive选项:http://camel.apache.org/jms

与心灵有关的问题“客户端和服务器时钟的可能是不同步的”。在Camel JMS页面上有一些细节。一些消息代理有办法用它的时间戳插件同步的时钟,如Apache ActiveMQ的:http://activemq.apache.org/timestampplugin.html

相关问题