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

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

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

待ち時間がいつになるかReceiveMessageAPI アクションが0より大きい場合ロングポーリングが有効です。ロングポーリングの最大待機時間は 20 秒です。ロングポーリングは、空のレスポンス(ReceiveMessage リクエストに対して利用可能なメッセージがない場合) や偽の空のレスポンス (メッセージが利用可能でもレスポンスに含まれない場合) の数を減らすことにより、Amazon SQS の使用コストの削減に役立ちます。詳細については、「Amazon SQSショートポーリングとロングポーリング」を参照してください。

最適なメッセージ処理を行うには、次の方法を使用します。

  • ほとんどの場合、ReceiveMessage 待機時間を 20 秒に設定します。アプリケーションの設定時間として 20 秒が長すぎる場合は、ReceiveMessage 待機時間の値を小さくします (最小 1 秒)。Amazon SQS へのアクセスに AWS SDK を使用しない場合、または AWS SDK に短い待機時間を設定する場合は、長いリクエストを許可するように、またはロングポーリングに短い待機時間を使用するようにAmazon SQS クライアントを変更する必要がある場合があります。

  • 複数のキューにロングポーリングを実行する場合は、すべてのキューに単一スレッドを使用せずに、キューごとに 1 つのスレッドを使用します。キューごとに 1 つのスレッドを使用した場合は、メッセージが使用可能になると、アプリケーションはキューごとにメッセージを処理できるのに対し、複数のキューを単一スレッドでポーリングすると、使用可能なメッセージがないキューを待機 (最大 20 秒) している間、アプリケーションは他のキューで使用可能なメッセージを処理できません。

重要

HTTP エラーを回避するには、ReceiveMessage リクエストの HTTP レスポンスタイムアウトが WaitTimeSeconds パラメータよりも長いことを確認してください。詳細については、「ReceiveMessage」を参照してください。