запустить веб-приложение с Gevent - PullRequest
14 голосов
/ 22 октября 2011

Я хочу попробовать поиграть с gevent в качестве веб-сервера и инфраструктуры приложений. Я не вижу способа "перезапустить" сервер или обновить код приложения, не убивая и не запуская все приложение Python снова.

Это просто как это делается? Может быть, это просто вопрос понимания парадигмы, отличной от пути apache.

Кроме того, как полу-связанный вопрос, является ли хорошей идеей даже запустить веб-сервер И сам сайт / сервис через gevent. Я видел другие реализации, использующие gunicorn для сервера и gevent для приложения, но из тестов, которые я видел, gevent намного превосходит gunicorn как сервер, когда дело доходит до масштабирования.

1 Ответ

24 голосов
/ 22 октября 2011

У Gunicorn есть 3 рабочих-гевента:

  • -k gevent (с использованием HTTP-анализатора gunicorn)
  • -k gevent_pywsgi (с использованием модуля gevent.pywsgi)
  • -k gevent_wsgi (с использованием модуля gevent.wsgi)

gevent.wsgi - это быстрый HTTP-сервер, основанный на libevent.

gevent.pywsgi - сервер WSGI, реализованный на Python.

Причиной существования gevent.pywsgi является libevent-http, имеющий несколько ограничений , таких как отсутствие поддержки keep-alive, потоковой передачи, ssl и веб-сокетов.

Обратите внимание, что новая альфа-версия (1.0a3) gevent использует libev и не включает сервер WSGI на основе libevent-http. В настоящее время gevent.wsgi является псевдонимом для gevent.pywsgi.

Серверные классы в Gevent не имеют никаких функций, связанных с управлением процессами, перезагрузкой, перезагрузкой и так далее. Эти функции необходимы для развертывания. Gunicorn предоставляет это для серверов Gevent WSGI. Используйте это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...