可以配置python -m http.server来处理并发请求吗?

时间:2018-01-17 19:21:02

标签: python http httpserver simplehttpserver

我有一个与http.server一起提供的小型演示页面。我尝试与我的同事共享,但发现http.server在任何打开的连接上都被阻止,因此无法为并发用户提供服务。有没有办法运行http.server来处理并发连接?我在这里找不到任何有用的东西:https://docs.python.org/3/library/http.server.html

1 个答案:

答案 0 :(得分:1)

IIRC没有现有的配置选项,但如果您愿意,可以使用socketserver.ThreadingMixin扩展一个:

import sys
import socketserver
import http.server


class ThreadedHTTPServer(socketserver.ThreadingMixIn, http.server.HTTPServer):
    daemon_threads = True


port = int(sys.argv[1])
server = ThreadedHTTPServer(('', port), http.server.SimpleHTTPRequestHandler)
try:
    server.serve_forever()
except KeyboardInterrupt:
    pass

ps:有a related python ticket