развертывание flask с использованием внутреннего сервера разработки werkzeug

Почему не рекомендуется использовать внутренний веб-сервер разработки flask/werkzeug в рабочей среде? Какие проблемы могут возникнуть?

Я спрашиваю, потому что по работе я вынужден делать это и использовать cron make shift для повторного запуска службы каждый день!


person nialloc    schedule 29.01.2013    source источник


Ответы (2)


Если вам приходится ежедневно использовать задание cron для его уничтожения и перезапуска, вы уже обнаружили серьезную проблему с использованием сервера разработки Flask. Сервер разработки написан не для стабильности, долговечности, конфигурируемости, безопасности, скорости или чего-то еще, кроме удобства во время разработки.

Правильная настройка WSGI будет быстрее, правильно обработает несколько подключений и, что наиболее важно для вас, будет периодически перезапускать процесс вашего приложения, чтобы очистить любой хлам, который может накапливаться.

person Sean McSomething    schedule 29.01.2013
comment
Ты прав. скажем, скорость, эффективность или аккуратность ничего не значат! Есть ли какая-то определенная готика, которая действительно закрепит аргумент для меня. - person nialloc; 30.01.2013
comment
@nialloc Все крутые ребята будут смеяться над тобой? Самый большой из них, о котором я могу думать, заключается в том, что проблемы безопасности на «реальном» сервере будут исправлены быстро, в то время как проблемы на сервере разработки будут иметь более низкий приоритет. Я предполагаю, что если это просто внутренняя вещь с доверенными пользователями, это даже не будет иметь большого значения. - person Sean McSomething; 30.01.2013
comment
Потому что только один процесс работает ужасно медленно под нагрузкой. Если используется потеря памяти, процесс завершается со статусом -11! Апач был придуман, чтобы нам не пришлось так страдать :-) Это настолько плохо, что даже не смешно - person nialloc; 19.02.2013
comment
Я столкнулся с проблемами, когда сервер разработки просто зависает. Ни один запрос не пройдет. Я думаю, это потому, что HTTP-клиент не закрыл соединение. - person repalviglator; 13.08.2014

У меня был сетевой вызов внутри обработчика ответов, у которого не было тайм-аута. Что-то пошло не так, и он ждал некоторое время (я использовал модуль requests), а затем, видимо, так и не восстановился.

Поскольку сервер Werkzeug имел только один поток, весь сервер разработки стал полностью недоступен.

person Sergey Orshanskiy    schedule 10.03.2015