#django #ajax #iis #request #celery
#джанго #ajax #iis #запрос #сельдерей
Вопрос:
Я запускаю веб-сайт Django через IIS. Когда пользователь сохраняет объект, это может занять некоторое время, поэтому вместо того, чтобы заставлять его ждать завершения, AJAX-запрос отправляется на сервер с информацией об отправке, и страница немедленно перенаправляется. Однако, если сервер получает еще много запросов, этот старый запрос на сохранение уничтожается довольно неэлегантно. Файлы журнала показывают, что он завершается в середине выполнения без сообщений об ошибках или других указаний на сбой.
Как мне сохранить старые запросы в Django?
PS Я уже исследовал запуск нового многопоточного процесса, но столкнулся с проблемами, связанными с моделями Django, и я ищу что-то более простое, чем сельдерей.
Ответ №1:
Оказывается, Django не убивал запросы, IIS был. Для FastCGI, посредника между Django и IIS, существует значение тайм-аута, равное 30 секундам. Поэтому, когда мой запрос на сохранение достиг этого срока, он просто закончился без предупреждения.
Вы можете изменить это, щелкнув по имени сервера в IIS, затем щелкнув значок «Настройки FastCGI», а затем щелкнув используемое приложение FastCGI. В разделе «Модель процесса» измените «Тайм-аут активности» и «Тайм-аут запроса» на более высокий предел, я использовал 300 в течение 5 минут, чтобы быть в безопасности.