Java DSLを使用する場合、メッセージのTTLをどのように設定しますか?
私はこのようなものを持っています:
...
from ("timer:something?delay=3000&period=15000")
...
.to("{{some.property}}")
.end()
...
送信されるメッセージの存続時間を設定したい。
Java DSLを使用する場合、メッセージのTTLをどのように設定しますか?
私はこのようなものを持っています:
...
from ("timer:something?delay=3000&period=15000")
...
.to("{{some.property}}")
.end()
...
送信されるメッセージの存続時間を設定したい。
最終的に、作成されるメッセージの JMSExpiration ヘッダー フィールドを次のように設定しました。
.setHeader("JMSExpiration", constant(System.currentTimeMillis() + 1000))
Apache ActiveMQ 5.7 を使用しています。
TTLはTime to Liveを意味すると思います。
Camel では、これはコンポーネント固有の処理方法です。これをサポートするコンポーネントもあれば、サポートしないコンポーネントもあります。
使用するコンポーネントのドキュメントと、それがサポートするものを確認する必要があります。
JMS コンポーネントを使用する場合、文書化されているように timeToLive オプションがあります: http://camel.apache.org/jms
また、「クライアントとサーバーのクロックが同期していない可能性がある」という問題に注意してください。Camel JMS ページにいくつかの詳細があります。一部のメッセージ ブローカーには、Apache ActiveMQ とそのタイムスタンプ プラグインなど、クロックを同期する方法があります: http://activemq.apache.org/timestampplugin.html