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

2024-04-02

我正在用 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()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SimpleHTTPRequestHandler 在从 do_POST 方法返回之前关闭连接 的相关文章

随机推荐

  • 使用 C 函数扩展 Numpy

    我正在尝试加速我的 Numpy 代码 并决定实现一个特定的函数 而我的代码大部分时间都在 C 中使用 我实际上是 C 的菜鸟 但我设法编写了一个函数 将矩阵中的每一行归一化为 1 我可以编译它 并用一些数据 在 C 中 测试它 它满足了我的
  • 使用 RxJS 将多个 ajax 请求转换为 Observables

    我正在努力解决某件事 我猜这意味着我误解了并且正在做一些愚蠢的事情 我有一个可观察对象 需要使用它来创建一些对象 将其发送到服务器进行处理 将服务器的结果与我发送的对象结合起来 然后将其转换为可观察对象 所以我想要做什么 我认为 就像是 v
  • 具有 http 身份验证的 Zend SOAP 服务器 WSDL URI

    我正在尝试使用 Zend Soap Server 设置 SOAP 服务 ZF1 我的问题是 WSDL URI 受密码保护 可以通过设置 https 用户名 来访问它 电子邮件受保护 cdn cgi l email protection 作为
  • 使 Python 单元测试因任何线程的异常而失败

    我正在使用单元测试框架来自动化多线程 python 代码 外部硬件和嵌入式 C 的集成测试 尽管我公然滥用单元测试框架进行集成测试 但它的效果非常好 除了一个问题 如果任何生成的线程引发异常 我需要测试失败 这可以通过单元测试框架实现吗 一
  • svn update 没有更新!

    我希望 svn update 用服务器上的文件覆盖我的本地文件 即使我的本地文件有修改 我也想扔掉它们并使用远程存储库上的版本 我怎么做 我试过svn update force但它不起作用 Update 感谢您的回答 所以我使用这样的恢复
  • 纯 Web 应用程序(HTML5 等)的推荐 IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • actionbarsherlock 选项卡中的 Google 地图

    我正在尝试让谷歌地图 v2 在我的应用程序中工作 我见过几个示例 展示了如何在活动中打开 SupportMapFragment 这个想法是你的活动会调用setContentView R layout map layout 其中 map la
  • ggplot2 中的scale_colour_gradient 与scale_fill_gradient

    我绝对是初学者ggplot2并尝试使用这个包画出漂亮的人物 我正在阅读手册 但我不明白它们之间的区别scale colour gradient vs scale fill gradient 在我的分析中 我将使用 假设 进行观察 因为我不确
  • 使用 PHP 的 telegram API 发送图像总是失败

    我想制作一个使用 Telegram API 发送图像的函数 参考 API https github com mgp25 Telegram Bot API https github com mgp25 Telegram Bot API 但是当
  • PHP 闭包是否损坏或者我遗漏了什么?

    我一直在阅读 PHP 5 3 的新功能 主要功能之一是closures 除非我犯了严重错误 否则 PHP 开发人员要么是 a 将闭包与匿名函数混淆b 我正在测试的 PHP 5 3 1 中的闭包被破坏了 From 维基百科怎么说 http e
  • E/iardini.error0:无效 ID 0x00000001 - 错误资源 ID

    我目前遇到一个错误 该错误继续降低我的应用程序的性能 该错误不会导致应用程序关闭或崩溃 也不会导致向控制台写入异常 控制台仅报告此消息 E iardini error0 Invalid ID 0x00000001 该消息中唯一出现的内容是
  • 为什么我无法将派生泛型类型转换为基本非泛型类型(通过约束)?

    鉴于这个虚构的例子 class NonGeneric class Generic
  • 如何按原样生成数据库脚本?

    我这样做的主要原因是跟踪我的应用程序的数据库架构更改 在 SQL Server Management Studio 中 我能够生成一个创建脚本来创建数据库 但它不包含任何测试数据 理想情况下 当脚本运行时 它应该删除现有数据库 假设它已经存
  • 将多项回答问题制成表格

    想象一下 我有一个问题 有四个选项 受访者可以选择零个或四个选项的任意组合 变量被命名为A B C and D响应存储在 data frame 中 如下所示 set seed 1 dat data frame A sample c 0 1
  • Material-UI 面包屑导航与反应路由器集成

    我正在尝试将 Material UI 面包屑与反应路由器一起使用 我如何以编程方式检测当前路线 在 Material UI 网站上有一个关于如何使用它的示例 但它需要使用静态 breadcrumbNameMap 我已经尝试使用 HOC wi
  • GCC-汇编错误:针对“.data”重定位 R_X86_64_32S

    情况 环境 Arch Linux x86 64 4 2 3 1 ARCH GCC 海湾合作委员会 海湾合作委员会 5 2 0 Command gcc Wall g o asm printf asm printf s Error usr bi
  • symfony2实体的slugify方法在哪里

    我有 slugify 方法 每次更改实体类的标题属性时都会对其进行 slugify 处理 所以我把这个方法放在实体类中并像这样调用它 public function setTitle t this gt title t this gt sl
  • 如何在javascript中转换日期时间格式

    我如何转换日期时间5 8 2011 12 00 00 AM m d yyyy 到 dd MMM yyyy 类似08 May 2011在 JavaScript 中 这个链接是一个很好的资源 您可以使用 http blog stevenlevi
  • 在 Word.run 流程之外使用 Paragraph

    我试图首先找到一个段落 然后当用户单击按钮时 对该段落进行一些操作 我尝试使用似乎是权威书籍中的示例 Michael Zlatkovsky 的 Building Office Add Ins var global paragraph und
  • SimpleHTTPRequestHandler 在从 do_POST 方法返回之前关闭连接

    我正在用 python 编写一个简单的网络服务器 下面是我的代码的简化版本 class StreamerHandler SimpleHTTPRequestHandler def do POST self try length int sel