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
Сейчас такие времена:
Вы знаете, где проблема и как заставить ее работать?