不是很容易。您可以拥有两个ThreadingHTTPServer实例,编写自己的serve_forever()函数(不要担心它不是一个复杂的函数)。
现有的函数:
def serve_forever(self, poll_interval=0.5):
"""Handle one request at a time until shutdown.
Polls for shutdown every poll_interval seconds. Ignores
self.timeout. If you need to do periodic tasks, do them in
another thread.
"""
self.__serving = True
self.__is_shut_down.clear()
while self.__serving:
r, w, e = select.select([self], [], [], poll_interval)
if r:
self._handle_request_noblock()
self.__is_shut_down.set()
因此,我们的替换将类似于以下内容:
def serve_forever(server1,server2):
while True:
r,w,e = select.select([server1,server2],[],[],0)
if server1 in r:
server1.handle_request()
if server2 in r:
server2.handle_request()
daemon_threads = True
作为class ThreadingHTTPServer(ThreadingMixIn, HTTPServer)
的成员添加,否则产生的线程不会停止,你的Python进程将不会退出,直到你发送更多请求来帮助这些线程意识到他们需要停止。我已经相应地编辑了你的回答,请让我知道是否有问题。 - RedGlyph