Недавно я разрабатывал веб-сайт/приложение Flask для Windows Server и заметил странную проблему.
Когда кто-то делает запрос к URL-адресу, иногда (например, 3-4 из 10 раз) он зависает. Все, что мне нужно сделать, чтобы этот запрос прошел, — это перейти в командную строку, где я запускаю сервер Flask и отправляю сигнал прерывания. (Я на Windows, так что в основном «Ctrl + C»). Я некоторое время гуглил, но я считаю, что ни одно из решений не применимо. Вот что я пробовал:
- добавить
threaded=true
вapp.run()
, как было предложено здесь, не сработало. - В Эта ссылка, автор упомянул, что некоторые браузеры могут запускать несколько запросов одновременно и сбивать сервер с толку. Это, вероятно, не применимо и здесь, поскольку я пытался сделать запрос из библиотеки Python
requests
и все еще вижу, что сервер зависает. - Использование Gevent или Tornado для обслуживания приложения, как указано в здесь, также не работает.
- Пробовал как на python 3, так и на python 2.7, была такая же проблема.
У меня почти такие же настройки на моей локальной машине (win7 64bit), и все работает нормально. (Сервер, на котором возникла проблема, — Windows Server 2012)
Я хотел бы поделиться некоторым кодом, но я очень сомневаюсь, что это будет проблема с кодом, поскольку он отлично работает локально.
Кто-нибудь испытал то же самое раньше?