2013-03-19 123 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

相關問題