7.3. 非同期の受信


7.3.1. 非同期メッセージ取得(Prefetch)

デフォルトでは、受信側は fetch() 呼び出しの応答として単一のメッセージを同期的に取得します。メッセージ のプレフェッチを行うレシーバーの容量はデフォルトで 0 です。
レシーバーの容量が 0 を超える値に設定されていると、受信側はキューからその数のメッセージに非同期的に取得します。この非同期の取得は prefetch と呼ばれ、レシーバーの capacity プロパティーを設定して有効および制御されます。
メッセージの事前フェッチには、以下の 2 つの利点があります。
  • 事前にフェッチされたメッセージは、アプリケーションによって要求された場合にローカルで利用できます。ただし、ブローカーからメッセージを取得する同期呼び出しのオーバーヘッドはありません。
  • prefetching が有効になっているレシーバーには、事前フェッチされたメッセージが利用可能数を判断するために呼び出される available() メソッドがあります。
available() メソッドには、以下の 2 つの点に注意してください。
prefetching は非同期です。つまり、キューの状態の絶対インジケータ available() として呼び出しによって返される数字に依存することはできません。たとえば、受信側の available() キャパシティーを 0 以外の値に設定したら、利用できる値が 0 のメッセージを返す可能性があります。これは、キューに必ずしもメッセージがないことを意味しますが、事前にフェッチされたメッセージはまだローカルで利用可能ではないことを意味します。
また、プレフェッチが有効なレシーバーの available メソッドによって報告される最大値は、capacity 受信側になります。この available() メソッドは、キュー内のメッセージの数ではなく、利用可能な事前フェッチされたメッセージの数を報告します。利用可能なメッセージの数がレシーバーの容量よりも小さい場合は、プレフェッチの非同期性質について、上記のメッセージと共にキュー内のメッセージ数であることを推測することができます。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat