我需要在web.py的线程之间共享一个对象。我正在运行一个执行计算并返回一个值的 Web 服务。计算是使用占用大量内存的对象完成的,因此我不希望为每个请求都创建它。
我有一个可以正常工作的解决方案,但似乎无法扩展:
import web
urls = ('/', 'index')
class index:
def GET(self):
...
result = web.myObject.DoCalculation()
return result
if __name__ == "__main__":
app = web.application(urls, globals())
web.MyObject = LoadObjectFromFile
app.run()
web.py会自动开启 10 个线程,但是这个数量是固定的,而且非常有限。我可以改变它吗?
web.py 安装指南建议使用Flup + 像LightTPD或Apache这样的服务器。这可以在保留我需要的共享对象功能的同时完成吗?谁能告诉我怎么做?
我安装了flup并在启动服务器时添加了“ fcgi ”作为命令行参数。这给了我在线程(无限数量)方面所需的行为,但当然没有执行任何任务。我认为需要定义一个fcgi服务器。这可以在不运行LightTPD或Apache的情况下解决吗?