我对mod_wsgi中的多个线程感到困惑,即使在阅读了这个document
之后主要问题是,mod_wsgi如何调用我的python脚本?
为了使我的问题清楚,我将在下面提出问题
假设我的服务器配置如下:
WSGIDaemonProcess XXX.com processes=12 threads=20 display-name=%{GROUP}
WSGIProcessGroup XXX.com
WSGIScriptAlias /sign /XXX/Http/upload.wsgi
我正在使用prefork MPM
我的/XXX/Http/upload.wsgi
看起来像这样
class app(object):
def __init__(self):
pass
def __call__(self, environ, start_response):
temp_unsign = tempfile.mkdtemp()
temp_signed = tempfile.mkdtemp()
try:
response_headers = [('Content-type', 'text/plain;charset=UTF-8'),('Content-Length', str(len('123')))]
status = '200 OK'
start_response(status, response_headers)
return ['123']
finally:
shutil.rmtree(temp_unsign)
shutil.rmtree(temp_signed)
application = app()
我的问题是:
app
个实例?一个例子?或者每个请求一个实例__call__
方法都在5个不同的线程中运行?我问这个是因为执行No such directory
时我总是收到错误shutil.rmtree
。
当然,我无法理解mod_wsgi如何在多线程中实际工作