public
Last active

Simple Django middleware that delays the processing of each request

  • Download Gist
django_sleep.py
Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
"""
This module provides very simple Django middleware that sleeps on every request.
 
This is useful when you want to simulate slow response times (as might be
encountered, say, on a cell network).
 
To use, add this middleware, and add a value for SLEEP_TIME to your settings.
 
Possible future feature: Look for an X-Django-Sleep header on each request,
to let the client specify per-request sleep time.
"""
 
import time
 
import django.conf
import django.core.exceptions
 
 
class SleepMiddleware(object):
 
def __init__(self):
self.sleep_time = getattr(django.conf.settings, "SLEEP_TIME", 0)
if not isinstance(self.sleep_time, (int, float)) or self.sleep_time <= 0:
raise django.core.exceptions.MiddlewareNotUsed
 
def process_request(self, request):
time.sleep(self.sleep_time)

Hi!
I implement the header feature at my fork.

best regards

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.