Apache camel 设置TTL Apache Camel JAva DSL

Apache camel 设置TTL Apache Camel JAva DSL,apache-camel,Apache Camel,在使用JavaDSL时,如何设置消息的TTL 我有这样的想法: ... from ("timer:something?delay=3000&period=15000") ... .to("{{some.property}}") .end() ... 我想在发送的邮件上设置生存时间。我假设TTL表示生存时间 在Camel中,这是组件特定的处理方式。一些组件支持这一点,而其他组件则不支持 您应该检查您使用的组件的文档,以及它支持什么 如果您使用JMS组件,则它具有所记录的

在使用JavaDSL时,如何设置消息的TTL

我有这样的想法:

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

我想在发送的邮件上设置生存时间。

我假设TTL表示生存时间

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

您应该检查您使用的组件的文档,以及它支持什么

如果您使用JMS组件,则它具有所记录的timeToLive选项:


请注意“客户端和服务器时钟可能不同步”的问题。驼峰JMS页面上有一些详细信息。一些消息代理有同步时钟的方法,比如ApacheActiveMQ及其时间戳插件:

我假设TTL意味着生存时间

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

您应该检查您使用的组件的文档,以及它支持什么

如果您使用JMS组件,则它具有所记录的timeToLive选项:


请注意“客户端和服务器时钟可能不同步”的问题。驼峰JMS页面上有一些详细信息。一些消息代理有同步时钟的方法,例如ApacheActiveMQ及其时间戳插件:

我最终设置了所创建消息的JMSExpiration头字段,如下所示

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

我们使用的是ApacheActiveMQ 5.7。

我最终设置了所创建消息的JMSExpiration头字段,如下所示

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

我们使用的是Apache ActiveMQ 5.7。

计时器组件只是创建一个事件,它在该事件的生命周期中没有任何内容,我想知道您是否希望在其他组件上使用TTL,您是否可以指定事件将通过哪个组件发送?忽略创建消息的逻辑。正在创建的消息是在对象消息中发送的自定义、可序列化的对象。计时器组件只创建一个事件,它在该事件的生命周期中没有任何内容,我想您希望在其他组件上使用TTL,您是否可以指定事件将通过哪个组件发送?忽略创建消息的逻辑。正在创建的消息是在对象消息中发送的自定义可序列化对象。