2013-03-19 2 views
-1

Как установить TTL для сообщения при использовании Java DSL?Установить TTL Apache Camel JAva DSL

У меня есть что-то вроде этого:

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

Я хочу, чтобы установить время, чтобы жить на сообщения, посылаемого.

+1

Компонент таймера просто создает событие, он не имеет ничего для жизненного цикла этого события, я хочу, чтобы вы хотите использовать TTL на каком-либо другом компоненте, можете ли вы указать компонент/s, что события будут отправляться через – dursun

+0

I оставил логику, где создается сообщение. Создаваемое сообщение представляет собой настраиваемый, сериализуемый объект, отправленный в сообщении объекта. – wxkevin

ответ

0

Я кончался установки поля заголовка JMSExpiration из сообщений создается аналогично следующему

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

Мы находимся используя Apache ActiveMQ 5.7.

0

Я предполагаю, что TTL означает «Время жить».

В Camel это конкретный компонент, как они справляются с этим. Некоторые компоненты поддерживают это, а другие нет.

Вы должны проверить документацию на компонент, который используете, что он поддерживает.

Если вы используете компонент JMS, то он имеет возможность TimeToLive, как документированные: http://camel.apache.org/jms

И ум о проблеме с «клиентом и сервер часов может быть синхронизированы». На странице Camel JMS есть несколько деталей. Некоторые брокеры сообщений есть способы синхронизировать часы, такие как Apache ActiveMQ с отметкой времени плагина: http://activemq.apache.org/timestampplugin.html

Смежные вопросы