2016-10-21 4 views

答えて

0

receiveTimeoutプロパティを参照してください。メッセージが到着するまで、この時点までのスレッドブロック。はい、コンテナの開始後に変更できますが、クライアントライブラリによってスレッドが解放されるまで有効になりません。

デフォルトは5秒です。メッセージがない場合、コンテナはすぐにループして再び受信します。

値を高すぎる値に設定すると、stop()の呼び出しに応答しにくくなります。

+0

私は、メッセージが連続的に入ってくる状況を指しています。この場合、receiveTimeoutは役に立たないと思います。この考え方は、DMLCがメッセージを消費する割合を減らすことです。呼び出しの間にThread.sleepのようなものがあります。 – user2599052

+0

次に、コンテナがメッセージ駆動型であるため、到着時にメッセージが配信され、その意味ではポーリングされません。コンテナはクライアントライブラリから継続的にメッセージを受信します。オンデマンドでメッセージを「プル」したい場合は、代わりに 'JmsTemplate'' receive'メソッドを使用してください。 –

+0

メッセージが消費されている速度を「制御」することを意図しています。これは、たとえば、さまざまなリスナー間で動的な負荷分散を実現したい場合(リスナーがクラスタ内のノードに属していると仮定した場合)、多くの関連性があります。 – user2599052