检查特定的WSGI处理程序是否在运行
我正在创建一个地图应用程序,这个应用程序使用WSGI服务,并且每个地图需要一个不同的配置文件。目前,我是这样启动这个服务的:
import os, sys
tilecachepath = '/usr/local/lib/python2.6/dist-packages/TileCache-2.10-py2.6.egg/TileCache'
sys.path.append(tilecachepath)
from TileCache.Service import Service, wsgiHandler
from paste.request import parse_formvars
theService = {}
def wsgiApp (environ, start_response):
global theService
fields = parse_formvars(environ)
cfgs = fields['cfg']
theService = Service.load(cfgs)
return wsgiHandler(environ, start_response, theService)
application = wsgiApp
显然,这样启动会产生太多的处理程序!我该如何判断某个特定的处理程序是否已经在运行呢?在apache的配置中,有什么需要调整的地方,以确保处理程序能够正确超时吗?
1 个回答
2
WSGI本身并不知道一个应用程序已经被哪些层包裹,也就是说,Apache也不知道这些情况。我建议让wsgiHandler
记录一下它的存在,这样你就可以避免多次使用它。如果你不能修改现有的代码,你可以为那段代码的层写自己的包装器(也就是在外面再加一层),并利用环境变量,直接或间接地记录哪些东西已经在运行了。