检查特定的wsgi处理程序是否正在运行
问题描述:
我正在创建一个使用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配置中的任何内容,以便处理程序正确超时?
答
WSGI本身并不知道哪些图层已经包装了某个应用程序,Apache也不知道这一点。我建议让wsgiHandler
记录它的存在,这样就可以避免多次使用它。如果你不能改变现有的代码,你可以使用你自己的代码层的包装来做到这一点(并且直接或间接地使用环境来记录已经有效的内容)。