

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

# Amazon SQS でのロングポーリングの設定
<a name="best-practices-setting-up-long-polling"></a>

待ち時間がいつになるか`[ReceiveMessage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html)`API アクションが0より大きい場合*ロングポーリング*が有効です。ロングポーリングの最大待機時間は 20 秒です。ロングポーリングは、空のレスポンス (`ReceiveMessage`リクエストに使用可能なメッセージがない場合) と偽の空のレスポンス (メッセージが使用可能でレスポンスに含まれていない場合) の数を減らすことで、Amazon SQS を使用するコストを削減します。詳細については、「[Amazon SQSショートポーリングとロングポーリング](sqs-short-and-long-polling.md)」を参照してください。

最適なメッセージ処理を行うには、次の方法を使用します。
+ ほとんどの場合、`ReceiveMessage` 待機時間を 20 秒に設定します。アプリケーションの設定時間として 20 秒が長すぎる場合は、`ReceiveMessage` 待機時間の値を小さくします (最小 1 秒)。 AWS SDK を使用して Amazon SQS にアクセスしない場合、または AWS SDK に短い待機時間を設定する場合は、長いリクエストを許可するか、長いポーリングに短い待機時間を使用するように Amazon SQS クライアントを変更する必要があります。
+ 複数のキューにロングポーリングを実行する場合は、すべてのキューに単一スレッドを使用せずに、キューごとに 1 つのスレッドを使用します。キューごとに 1 つのスレッドを使用した場合は、メッセージが使用可能になると、アプリケーションはキューごとにメッセージを処理できるのに対し、複数のキューを単一スレッドでポーリングすると、使用可能なメッセージがないキューを待機 (最大 20 秒) している間、アプリケーションは他のキューで使用可能なメッセージを処理できません。

**重要**  
HTTP エラーを回避するには、`ReceiveMessage` リクエストの HTTP レスポンスタイムアウトが `WaitTimeSeconds` パラメータよりも長いことを確認してください。詳細については、「[ReceiveMessage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html)」を参照してください。