jmstemplate receive() メソッドはどのように同期されますか? 送信者はブローカーにメッセージを送信し、反対側のコンシューマーはブローカー キューまたはトピックからメッセージを消費します。受信の場合、ブローカでデータを待機しているポーリング スレッドになります。同期はどのように維持されますか?
質問する
5231 次
1 に答える
3
JmsTemplate
は舞台裏で JMS API を使用し、特にMessageConsumer
. Message
そのサービスは、待機せずに を受信しようとするか( receiveNoWait
)、構成可能な時間待機することができます ( receive(long timeout)
)。タイムアウト 0 で呼び出されている場合、メッセージが到着するまで receive メソッドはブロックされます。これらすべてを処理するものは何もありませんJmsTemplate
(つまり、クライアント ブローカの実装によって提供されます)。
メッセージを受信するより一般的な方法は、リスナー コンテナーを使用することです。Spring では、DefaultMessageListenerContainer
スレッド ポーリングを使用して着信メッセージを処理できます。詳細については、Spring フレームワークの jms ドキュメントを確認してください。
于 2014-04-09T11:13:59.260 に答える