Amazon SQS でのロングポーリングの設定 - Amazon Simple Queue Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon SQS でのロングポーリングの設定

待ち時間がいつになるかReceiveMessageAPI アクションが0より大きい場合ロングポーリングが有効です。長いポーリングの最大待機時間は20秒です。ロングポーリングは、空のレスポンス(ReceiveMessagerequestに対して利用可能なメッセージが含まれていない場合)や偽のレスポンス(利用可能であってもレスポンスに含まれない場合)の数を減らすことにより 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