从do_POST方法返回之前,SimpleHTTPRequestHandler关闭连接

Rob*_*rto 7 python

我正在python中编写一个简单的Web服务器.这是我的代码的简化版本:

class StreamerHandler(SimpleHTTPRequestHandler):
    def do_POST(self):
        try:
            length = int(self.headers.getheader('content-length'))
            data = self.rfile.read(length)
            self.send_response(200, "OK")
            #process_data(data, self.client_address)
        except Exception as inst:
            logging.error(type(self).__name__ + "/"  + type(inst).__name__ + " (" + inst.__str__() + ")")

class Streamer(TCPServer):
    def __init__(self, overlay):
        self.allow_reuse_address = True
        TCPServer.__init__(self, ("", port), StreamerHandler)
Run Code Online (Sandbox Code Playgroud)

我想做的是发送响应关闭TCP连接,然后运行process_data方法,这可能需要很长时间才能完成.

有没有办法实现这个目标?我能想到的唯一解决方案是使用专用线程来处理.

小智 6

我尝试了一下,实际上您需要两个命令(才能关闭它): self.finish() self.connection.close()