- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Webで重い処理をするとリクエストが10回飛ぶ)
Webで重い処理をするとリクエストが10回飛ぶ
このQ&Aのポイント
- PHPのフレームワークCAKEを使用してWebシステムを作成しています。
- Webサーバ2台とDBサーバ1台でサービスを運営しています。
- 重たい処理を実行すると、リクエストが10回飛びデータが10個登録される不思議な現象が発生しており、対応に困っています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず、クライアント側の通信内容を見てみてはどうでしょう。 リクエストは以下の順で流れます。 ブラウザなどクライアント → ロードバランサ → Apache → PHP クライアントが 1回リクエストを送って、Apacheに 10回くるなら、 ロードバランサが悪さをしてる可能性が高いです。 クライアントが PCのブラウザなら、 FireFox の LiveHttpHeaders という AddOn で簡単な通信内容がみれます。 他にはWireSharkなどのパケット監視ツールも使えます。 もしブラウザが 10回リクエストを送っているなら、 ロードバランサはたぶん関係ありません。 その場合はブラウザのレスポンスも見ます。 リクエスト1 → レスポンス1 → リクエスト2 → レスポンス2→... のようにレスポンス取得完了後に、次のリクエストを送っているなら、 サーバー側が再通信させるレスポンスを返しているのではないでしょうか。 リクエスト1 → リクエスト2 → レスポンス1 → レスポンス2→... のようにレスポンスが完了する前に次のリクエストを送っていれば、 サーバー側は関係なく、クライアント側が連続リクエストしていることになるので、 JavaScriptやブラウザの問題だと思います。 参考になるか分かりませんが、私が以前経験した似たようなケースで、 登録データが多すぎる → 通信に時間がかかりすぎてタイムアウト → クライアントの機能で通信自動リトライ 結果、何度もリクエストしてデータが重複登録される、ということがありました。
お礼
ご回答ありがとうございます。 レスポンス情報をみてましたら、リクエスト1 → リクエスト2 → レスポンス1 → レスポンス2のような感じでリクエストが送られているようです。 ブラウザはfirefoxに関係なくIEやChromeでも同様の検証なので、ブラウザは関係ないと思います。 javaScriptでは特に怪しそうな動作はしていないので、何か他に原因があるかと思いますので、もう少し探ってみたいと思います。