Oct-21-2020, 04:42 PM
Hi,
I have a simple HTTP server that processed data request from multiple clients. I'm using Windows Python 3.8 and ThreadedHTTPServer, but that appears to only use threads to accept requests, but don't actually spawn a new thread to process the request. So in this example below, when a request is for doLargeTask(), the server hangs until it finishes the large request, while no other requests are processed.
Many thanks for some guidance.
I have a simple HTTP server that processed data request from multiple clients. I'm using Windows Python 3.8 and ThreadedHTTPServer, but that appears to only use threads to accept requests, but don't actually spawn a new thread to process the request. So in this example below, when a request is for doLargeTask(), the server hangs until it finishes the large request, while no other requests are processed.
Many thanks for some guidance.
from http.server import HTTPServer, BaseHTTPRequestHandler, ThreadingHTTPServer from socketserver import ThreadingMixIn class ThreadingHTTPServer(ThreadingMixIn, HTTPServer): pass class SimpleHTTPRequestHandler(BaseHTTPRequestHandler): def do_GET(self): self.send_response(200) self.end_headers() if A: resp = doSmallTask() resp = resp.encode('utf-8') self.wfile.write(resp) if B: resp = doLargeTask() resp = resp.encode('utf-8') self.wfile.write(resp) httpd = ThreadingHTTPServer(('localhost', 8000), SimpleHTTPRequestHandler) httpd.serve_forever()