python - SimpleHTTPRequestHandler 在从 do_POST 方法返回之前关闭连接

标签 python

我正在用 python 编写一个简单的网络服务器。以下是我的代码的简化版本:

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)

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

有什么办法可以实现吗?我能想到的唯一解决方案是使用专用线程来处理。

最佳答案

我试过了,你实际上需要两个命令(按顺序)来关闭它: self.finish() self.connection.close()

关于python - SimpleHTTPRequestHandler 在从 do_POST 方法返回之前关闭连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6594418/

相关文章:

python - 移动 pandas 数据框上的整列

python - 使用glob定位模块,然后动态导入模块

python - 如何获取有关 Python 线程异常的完整信息?

python - 将列表拆分为不同长度的 block

python - 是否可以在 Google TPU 上运行常规的 python 代码?

python - 尝试使用 np.piecewise 进行多元函数时出现 ValueError

python - 给定以下代码,变量 result 中存储的值是多少? Python

Python 队列 - 最多有 n 个线程在运行

python - 当我使用 os.system() 在 Python 中打开一个 .py 文件时,它会立即自动关闭它。我该如何解决?

python - 模型实例上的 Django 引用管理器和相关管理器