我有一个从BaseHTTPRequestHandler派生的HTTP处理程序
class MyHandler(BaseHTTPRequestHandler):
do_GET():
...
我遇到的问题是,我想报告我的应用程序在另一个线程中运行的状态。似乎对于每个请求都调用了一个新的处理程序实例,因此我无法将我的程序状态保存在MyHandler中。我可以在全球范围内存储州,但出于设计原因,我不想这样做。还有其他选择吗?
答案 0 :(得分:0)
您可以使用多处理模块来完成此任务。首先派生一个服务器类:
class MyTCPServer(SocketServer.ForkingTCPServer):
manager = multiprocessing.Manager()
SHARED = manager.dict()
然后在你的处理程序的do_GET中你可以做类似的事情:
self.server.SHARED['foo'] = 1
然后应该由do_GET的其他实例引用。