From d6a02ff99bcee734d5335c91f5ada41d7322ecb4 Mon Sep 17 00:00:00 2001 From: Bryan Duxbury Date: Thu, 2 Sep 2010 15:14:27 +0000 Subject: [PATCH] THRIFT-597. py: Python THttpServer performance improvements This enables buffered I/O and ThreadingMixin. Patch: David Reiss git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991971 13f79535-47bb-0310-9956-ffa450edef68 --- lib/py/src/server/THttpServer.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/py/src/server/THttpServer.py b/lib/py/src/server/THttpServer.py index 21fc3141..9bf80cbb 100644 --- a/lib/py/src/server/THttpServer.py +++ b/lib/py/src/server/THttpServer.py @@ -29,7 +29,8 @@ class THttpServer(TServer.TServer): acting as a mock version of an Apache-based PHP Thrift endpoint.""" def __init__(self, processor, server_address, - inputProtocolFactory, outputProtocolFactory = None): + inputProtocolFactory, outputProtocolFactory = None, + server_class = BaseHTTPServer.HTTPServer): """Set up protocol factories and HTTP server. See BaseHTTPServer for server_address. @@ -52,12 +53,14 @@ class THttpServer(TServer.TServer): itrans = TTransport.TFileObjectTransport(self.rfile) otrans = TTransport.TFileObjectTransport(self.wfile) + itrans = TTransport.TBufferedTransport(itrans, int(self.headers['Content-Length'])) + otrans = TTransport.TBufferedTransport(otrans) iprot = thttpserver.inputProtocolFactory.getProtocol(itrans) oprot = thttpserver.outputProtocolFactory.getProtocol(otrans) thttpserver.processor.process(iprot, oprot) otrans.flush() - self.httpd = BaseHTTPServer.HTTPServer(server_address, RequestHander) + self.httpd = server_class(server_address, RequestHander) def serve(self): self.httpd.serve_forever() -- 2.17.1