我想尝试使用gevent作为Web服务器和应用程序框架。我没有看到任何方法“重新启动”服务器或更新应用程序代码,而不会再次杀死和启动整个python应用程序。
这是怎么做的?也许这只是我理解不同范式的apache方式的问题。
此外,作为一个半相关的问题,通过gevent运行Web服务器和站点/服务本身甚至是个好主意。我已经看到其他实现使用gunicorn作为服务器和gevent的应用程序,但从我看到的基准测试,gevent远远超过gunicorn作为服务器进行扩展。
答案 0 :(得分:24)
Gunicorn有3名gevent工人:
gevent.wsgi是一个基于libevent的快速HTTP服务器。
gevent.pywsgi是用Python实现的WSGI服务器。
gevent.pywsgi存在的原因是libevent-http有few limitations,例如不支持keep-alive,streaming,ssl和websockets。
请注意,新alpha version (1.0a3) of gevent使用libev并且不包含基于libevent-http的WSGI服务器。目前,gevent.wsgi是gevent.pywsgi的别名。
gevent中的服务器类没有与进程管理,重新启动,重新加载等相关的任何功能。但这些功能对于部署是必要的。 Gunicorn为gevent的WSGI服务器提供了这个功能。使用它。