Многопоточный HTTP-сервер в Python для обработки запросов на получение - PullRequest
0 голосов
/ 28 августа 2018

Мне нужно создать многопоточный веб-сервер в Python 3, где каждый запрос получает новый поток. Я последовал базовому примеру из блога. Но сервер всегда блокируется, так как спящий вызов в 1 потоке блокирует другие потоки. Может ли кто-нибудь помочь мне в этом?

Вот мой код

import time
from http.server import HTTPServer, BaseHTTPRequestHandler
from socketserver import ThreadingMixIn
import threading


class Handler(BaseHTTPRequestHandler):

    def do_GET(self):
        self.send_response(200)
        self.end_headers()
        print('start-->')
        time.sleep(5)
        print('end-->')
        self.wfile.write("Test".encode())


class ThreadingSimpleServer(ThreadingMixIn, HTTPServer):
    pass


def run():
    server = ThreadingSimpleServer(('0.0.0.0', 1234), Handler)
    server.serve_forever()


if __name__ == '__main__':
    run()

Моя проблема в том, что если я отправляю 2 запроса на сервер, второй начинает выполняться только после завершения первого. Мне нужно, чтобы сон был в отдельном потоке, не затрагивая другие потоки. Буду благодарен за любую помощь.

...