翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon SQS でのロングポーリングの設定
待ち時間がいつになるかReceiveMessage
API アクションが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」を参照してください。