首先:
。
我不明白的是,与UWSGI这样的方法相比,不同的“其他”方法在幕后是如何工作的。您的服务器(Nginx等)是否将请求路由到您的WSGI应用程序,并且UWSGI为路由到它的每个请求创建一个新的Python解释器?WSGI与其他传统/猴子修补方法有多大的不同(除了WSGI提供的不同、更简单的Python接口之外)?我错过了什么电灯泡时刻?
发布于 2010-04-29 22:46:37
除了CGI之外,几乎从不为每个请求创建一个新的Python解释器。阅读:
http://blog.dscpl.com.au/2009/03/python-interpreter-is-not-created-for.html
这是针对mod_python编写的,但也适用于使用持久进程的mod_wsgi和任何WSGI托管机制。
另请阅读:
http://www.python.org/dev/peps/pep-0333/#environ-variables
在这里,您会发现描述了“wsgi.run_once”变量。这用于指示WSGI应用程序何时使用托管机制,该机制将看到一个进程只处理一个请求,然后退出,即CGI。因此,编写一个测试hello应用程序,将WSGI环境转储出来,并查看您所使用的环境设置为什么。
还要注意“wsgi.multiprocess”和“wsgi.multithread”变量。它们告诉您是否正在使用多进程服务器,以便您的应用程序同时处理请求的多个实例。“wsgi.multithread”变量告诉您,进程本身是否正在处理同一个进程中并发线程中的多个请求。
有关Apache系统(如mod_python和mod_wsgi )和mod_wsgi守护进程模式的多进程和多线程模型的更多信息,请参见:
http://code.google.com/p/modwsgi/wiki/ProcessesAndThreading
https://stackoverflow.com/questions/2739892
复制相似问题