django-scaler

Degrade gracefully by automatically replacing heavy pages with static pages while a server is taking st...
Download

django-scaler Ranking & Summary

Advertisement

  • Rating:
  • License:
  • BSD License
  • Price:
  • FREE
  • Publisher Name:
  • Praekelt Foundation
  • Publisher web site:
  • http://praekelt.com

django-scaler Tags


django-scaler Description

django-scaler is a Django app to degrade gracefully by automatically replacing heavy pages with static pages while a server is taking strain.Installation1. Install or add django-scaler to your Python path.2. Add scaler to your INSTALLED_APPS setting.3. Add scaler.middleware.ScalerMiddleware to the top of your MIDDLEWARE_CLASSES setting.4. Add (r'^scaler/', include('scaler.urls')) to urlpatterns.OverviewServers may at times get overloaded due to a variety of reasons. When that happens you don't want expensive requests to bring down your entire site. The site must redirect expensive requests to a "server busy" page while the server is under load, and then automatically remove the redirects once the load has dropped enough.django-scaler addresses this situation in two ways. Firstly, it knows which requests to redirect by itself. Secondly, it can be instructed to redirect the N most expensive requests. It stores response time data in in-memory caches enabling it to make these decisions.UsagePasted from test_settings.py:DJANGO_SCALER = { 'server_busy_url_name': 'server-busy', # How many response times to consider for an URL. A small value means slow # response times are quickly acted upon, but it may be overly aggressive. # A large value means an URL must be slow for a number of requests before # it is acted upon. The default is 100. 'trend_size': 10, # How much slower than average the trend must be before redirection kicks # in. The default is 4.0. 'slow_threshold': 2.0, # How many seconds to keep redirecting an URL before serving normally. The # default is 60. 'redirect_for': 10, # A function that returns how many of the slowest URLs must be redirected. # Depending on the site, data and load on the server this may be a large # number. This allows external processes to instruct the middleware to # redirect. The default is 0. 'redirect_n_slowest_function': lambda: 0, # A function that returns what percentage of the slowest URLs must be # redirected. Depending on the site, data and load on the server this may # approach 100. The default is 0. 'redirect_percentage_slowest_function': lambda: 0, # A function that returns a list of regexes. URLs matching the regexes are # redirected. Each regex is a simple string. Do not prefix with r''. The # default is an empty list. 'redirect_regexes_function': lambda: [],}Product's homepage


django-scaler Related Software