Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个从 BaseHTTPRequestHandler 派生的 HTTP 处理程序
class MyHandler(BaseHTTPRequestHandler): do_GET(): ...
我遇到的问题是我想报告我的应用程序在另一个线程中运行的状态。似乎对于每个请求,都会调用一个新的处理程序实例,因此我无法将程序状态保留在 MyHandler 中。我可以在全球范围内存储状态,但出于设计原因,我不想这样做。还有其他选择吗?
您可以使用多处理模块来完成此操作。首先派生一个服务器类:
class MyTCPServer(SocketServer.ForkingTCPServer): manager = multiprocessing.Manager() SHARED = manager.dict()
然后在您的处理程序的 do_GET 中,您可以执行以下操作:
self.server.SHARED['foo'] = 1
然后应该由 do_GET 的其他实例引用。