我正在使用 python、BasicHTTPServer 和 SimpleHTTPServer 编写一个小型 Web 服务器用于测试目的。看起来它一次只处理一个请求。有什么办法可以让它更快一点,而又不会太麻烦吗?
基本上我的代码如下所示,我想保持简单;)
os.chdir(webroot)
httpd = BaseHTTPServer.HTTPServer(("", port), SimpleHTTPServer.SimpleHTTPRequestHandler)
print("Serving directory %s on port %i" %(webroot, port) )
try:
httpd.serve_forever()
except KeyboardInterrupt:
print("Server stopped.")
您可以使用 mixin 继承来创建自己的线程或分叉类套接字服务器:
import SocketServer
import BaseHTTPServer
class ThreadingHTTPServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer):
pass
这有其局限性,因为它不使用线程池,受到 GIT 等的限制,但它可以提供一点帮助(相对较少的努力)。请记住,请求将由多个线程同时处理,因此请务必对在处理请求过程中完成的全局/共享数据(除非此类数据在启动后不可变)的访问进行适当的锁定。
这个问题覆盖相同的地面(不是特别长)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)