翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon SQS でのロングポーリングの設定
待ち時間がいつになるかReceiveMessage
API アクションが0より大きい場合ロングポーリングが有効です。長いポーリングの最大待機時間は20秒です。ロングポーリングは、空のレスポンス(ReceiveMessage
requestに対して利用可能なメッセージが含まれていない場合)や偽のレスポンス(利用可能であってもレスポンスに含まれない場合)の数を減らすことにより Amazon SQS を使用するコストを削減することに役立ちます。詳細については、「Amazon SQSショートポーリングとロングポーリング」を参照してください。
最適なメッセージ処理を行うには、次の方法を使用します。
-
ほとんどの場合、
ReceiveMessage
待機時間を 20 秒に設定します。アプリケーションの設定時間として 20 秒が長すぎる場合は、ReceiveMessage
待機時間の値を小さくします (最小 1 秒)。 AWS SDK を使用して Amazon SQS にアクセスしない場合、または AWS SDK の待機時間が短いように設定する場合は、長いリクエストを許可するか、長いポーリングに短い待機時間を使用するように Amazon SQS クライアントを変更する必要があります。 -
複数のキューにロングポーリングを実行する場合は、すべてのキューに単一スレッドを使用せずに、キューごとに 1 つのスレッドを使用します。キューごとに 1 つのスレッドを使用した場合は、メッセージが使用可能になると、アプリケーションはキューごとにメッセージを処理できるのに対し、複数のキューを単一スレッドでポーリングすると、使用可能なメッセージがないキューを待機 (最大 20 秒) している間、アプリケーションは他のキューで使用可能なメッセージを処理できません。
重要
HTTP エラーを回避するには、ReceiveMessage
リクエストの HTTP レスポンスタイムアウトが WaitTimeSeconds
パラメータよりも長いことを確認してください。詳細については、「」を参照してくださいReceiveMessage。