2016-09-09 2 views
0

Я заметил, что мое приложение Django время от времени делает двойные запросы к базе данных, а не только одному. Файл журнала показывает два похожих запроса в (почти) то же самое время. Я знаю, что пользователи используют 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) 

Это критический недостаток в моей системе. Почему это критический недостаток? Например: пользователь создает 2 объекта базы данных вместо одного, что создает общий беспорядок в базе данных.

Вопрос: Как отфильтровать двойные запросы?

Im, используя Django, Nginx и Ubuntu 14.04

+0

Таким образом, ее не представляется возможным, чтобы отклонить запрос от пользователя, если время с момента последнего запроса от пользователя меньше, чем XX? – Vingtoft

+0

Почему это критический недостаток? Можно ли кэшировать страницы после первого вызова, если вас беспокоят дополнительные вызовы базы данных? Ваш пример действительно не говорит о последствиях этого двойного вызова. Я также задал бы вопрос, почему первый запрос сгенерировал 0 байт, а второй - не так. Должно ли это происходить? – nikomax

+0

Ive уточнил, почему его критический недостаток в вопросе. Да, действительно, если кто-нибудь может объяснить, почему первый запрос сгенерировал 0 байт и перенастроил 301, пожалуйста, сделайте :) – Vingtoft

ответ

Смежные вопросы