用gevent运行web应用程序

End*_*age 14 python gevent gunicorn

我想尝试使用gevent作为Web服务器和应用程序框架.我没有看到任何方法"重新启动"服务器或更新应用程序代码而不杀死并再次启动整个python应用程序.

这是怎么做的?也许这只是我理解apache方式的不同范式的问题.

此外,作为一个半相关的问题,通过gevent运行Web服务器和站点/服务本身甚至是个好主意.我已经看到其他实现使用gunicorn服务器和gevent应用程序,但从我看到的基准测试,gevent远远超过gunicorn作为服务器在扩展时.

Den*_*nko 24

Gunicorn有3名gevent工人:

  • -k gevent(使用gunicorn的HTTP解析器)
  • -k gevent_pywsgi(使用gevent.pywsgi模块)
  • -k gevent_wsgi(使用gevent.wsgi模块)

gevent.wsgi是一个基于libevent的快速HTTP服务器.

gevent.pywsgi是用Python实现的WSGI服务器.

gevent.pywsgi存在的原因是libevent-http有一些限制,例如不支持keep-alive,streaming,ssl和websockets.

请注意,gevent的新alpha版本(1.0a3)使用libev,并且不包含基于libevent-http的WSGI服务器.目前,gevent.wsgi是gevent.pywsgi的别名.

gevent中的服务器类没有与进程管理,重新启动,重新加载等相关的任何功能.但这些功能对于部署是必要的.Gunicorn为gevent的WSGI服务器提供了这个功能.用它.