2016-06-23 3 views
0

@JmsListenerはポストをボンネットの下で使用しますか、それともメッセージ駆動ですか?同時実行= 1でテストするとき、それは毎秒1つのメッセージ読んようだ:@JmsListenerをチューニングする

2016-06-23 09:09:46.117 INFO 13044 --- [enerContainer-1] c.s.s.core.service.PolicyChangedHandler : Received: 1: This is a test 
2016-06-23 09:09:46.922 INFO 13044 --- [enerContainer-1] c.s.s.core.service.PolicyChangedHandler : Received: 2: This is a test 
2016-06-23 09:09:47.730 INFO 13044 --- [enerContainer-1] c.s.s.core.service.PolicyChangedHandler : Received: 3: This is a test 
2016-06-23 09:09:48.535 INFO 13044 --- [enerContainer-1] c.s.s.core.service.PolicyChangedHandler : Received: 4: This is a test 
2016-06-23 09:09:49.338 INFO 13044 --- [enerContainer-1] c.s.s.core.service.PolicyChangedHandler : Received: 5: This is a test 
2016-06-23 09:09:50.155 INFO 13044 --- [enerContainer-1] c.s.s.core.service.PolicyChangedHandler : Received: 6: This is a test 

を、それがポーリングしている場合は、どのように私は、ポーリングレートを調整したり、ポーリングごとに読まれるメッセージの数を増やすのですか?

メッセージ駆動型であれば、なぜそんなに遅くないのですか?

答えて

0

ありSpring JMSListenerは、デフォルトでフードの下でポーリングを使用します。 DefaultMessageListenerContainer default receiveTimeoutも1を参照してください。

各試行の受信タイムアウトは、「receiveTimeout」プロパティで設定できます。setReceiveTimeout 受信コールに使用するタイムアウトをミリ秒単位で設定します。デフォルトは1000ミリ秒、つまり1秒です。

注:この値は、トランザクションマネージャによって使用されるトランザクションタイムアウト(当然のことながら、適切な単位)よりも小さくする必要があります。 0はタイムアウトが全くないことを示します。しかし、これは、トランザクションマネージャー内で実行されていない場合にのみ実行可能であり、一般的には、このようなリスナーコンテナがきれいにシャットダウンできないために推奨されません。 -1のような負の値は、待機しない受信操作を示します。

関連する問題