Django Dev Server - sleep(N) в Middleware заставляет запросы спать несколько N секунд

Working on a middleware that slows down dev server response time. To simplify it I've created a very simple example that measures get_response time and then sleeps so the whole request cycle takes approximately 2 seconds.

Проблема в том, что при одновременной отправке нескольких запросов некоторые из них спят 2xN времени (не просто немного дольше, а в несколько раз больше).

Я предполагаю, что это связано с ограничениями по параллельности сервера разработчиков Django. Возможно ли заставить его работать?

class SnailMiddleware:
    """ Middleware that throttle responses """
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request: HttpRequest):
        start = now()
        response = self.get_response(request)
        elapsed_time = (now() - start).total_seconds()
        time.sleep(2 - elapsed_time)
        return response

Сейчас такие времена:

введите описание изображения здесь

Вы знаете, где проблема и как заставить ее работать?

Вернуться на верх