2016-09-09 6 views
0

私のDjangoアプリケーションは、たまに1つではなく、2つのデータベースクエリを作成することに気付きました。ログファイルには、ほぼ同じ時刻に2つの同様の要求が表示されます。私は、インターネット接続が不安定な場所でユーザーがiPadsを使用していることを知っています。サーバ上で同じダブルリクエストをフィルタリングする方法

例:

[pid: 749|app: 0|req: 892/2837] x.x.x.x() {44 vars in 896 bytes} [Fri Sep 9 12:00:55 2016] GET /clinic_profile/61 => generated 0 bytes in 1 msecs (HTTP/1.1 301) 3 headers in 134 bytes (1 switches on core 0) 
[pid: 750|app: 0|req: 659/2838] x.x.x.x() {44 vars in 898 bytes} [Fri Sep 9 12:00:55 2016] GET /clinic_profile/61/ => generated 84989 bytes in 374 msecs (HTTP/1.1 200) 3 headers in 102 bytes (1 switches on core 0) 

これが私のシステムで重要な欠陥です。なぜそれは重大な欠陥ですか?たとえば、ユーザーは1つのデータベースオブジェクトではなく2つのデータベースオブジェクトを作成し、データベース全体を混乱させます。

質問:ダブルリクエストを除外するにはどうすればよいですか?

イム最初のURLの末尾にスラッシュを持っていないジャンゴ、nginxのとUbuntu 14.04

+0

ユーザからの要求を拒否するように、そのことはできません、ユーザーからの最後の要求がXX未満であるため、時間があれば? – Vingtoft

+0

なぜこれが重大な欠陥ですか?追加のデータベース呼び出しが心配な場合、最初の呼び出し後にページをキャッシュすることはできますか?あなたの例では、この二重呼び出しが持つ影響を実際には伝えません。私はまた、なぜ最初のリクエストが0バイトを生成したのか、2バイト目は0バイトを生成したのかという疑問を呈しますそれが起こっているはずですか? – nikomax

+0

アイヴは質問にその致命的な欠陥がある理由を詳述しました。 はい、最初の要求が0バイトを生成し、301を戻した理由を誰かが説明できる場合は、どうかしてください:) – Vingtoft

答えて

関連する問題