开发一个会减慢开发服务器响应时间的中间件。为了简化它,我创建了一个非常简单的示例来测量get_response
时间,sleeps
因此整个请求周期大约需要 2 秒。
问题是,当一次发送多个请求时,其中一些会休眠 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
这些是时代:
您知道问题出在哪里以及如何解决吗?