首页 > 解决方案 > 在 Python 中具有更大程度控制的 HTTPServer

问题描述

我有一个相当简单的问题,我想用 Python 解决。

我想要一个具有以下行为的网络服务器:如果它收到一个 POST 请求/work,那么它应该将它添加到工作队列并在附加的数据上执行一些函数。如果它收到一个 POST 请求,/cancel它应该取消它当前的任务。

不幸的是,我似乎可以让 aBaseHTTPRequestHandler处理多个请求的唯一方法是使用 a ThreadingMixIn,但这似乎不必要地复杂,因为我必须使用一组锁来防止多个工作任务同时执行。

我尝试使用BaseHTTPRequestHandler没有 a 的 aThreadingMixIn并且只是在 中分离线程do_POST,但这不起作用,因为当函数返回时显然BaseHTTPRequestHandler关闭了它的连接。do_POST

理想情况下,我正在寻找一个接口,使我能够按照自己的条件关闭与客户端的连接,因此我可以在工作线程中完成,并自己管理队列,而不是解决ThreadingMixIn's 行为在这方面。

标签: pythonpython-multithreadinghttpserver

解决方案


推荐阅读