0

Java DSLを使用する場合、メッセージのTTLをどのように設定しますか?

私はこのようなものを持っています:

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

送信されるメッセージの存続時間を設定したい。

4

2 に答える 2

2

最終的に、作成されるメッセージの JMSExpiration ヘッダー フィールドを次のように設定しました。

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

Apache ActiveMQ 5.7 を使用しています。

于 2013-03-22T14:18:31.723 に答える
1

TTLはTime to Liveを意味すると思います。

Camel では、これはコンポーネント固有の処理方法です。これをサポートするコンポーネントもあれば、サポートしないコンポーネントもあります。

使用するコンポーネントのドキュメントと、それがサポートするものを確認する必要があります。

JMS コンポーネントを使用する場合、文書化されているように timeToLive オプションがあります: http://camel.apache.org/jms

また、「クライアントとサーバーのクロックが同期していない可能性がある」という問題に注意してください。Camel JMS ページにいくつかの詳細があります。一部のメッセージ ブローカーには、Apache ActiveMQ とそのタイムスタンプ プラグインなど、クロックを同期する方法があります: http://activemq.apache.org/timestampplugin.html

于 2013-03-20T14:08:32.990 に答える