django-scaler

Software Screenshot:
django-scaler
Software Details:
Version: 0.2
Upload Date: 14 Apr 15
Distribution Type: Freeware
Downloads: 0

Rating: nan/5 (Total Votes: 0)

django-scaler is a Django app to degrade gracefully by automatically replacing heavy pages with static pages while a server is taking strain.

Installation

1. 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.

Overview

Servers 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.

Usage

Pasted 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: [],
}

What is new in this release:

  • Regex URL matching for explicit redirection.
  • Percentage slowest explicit redirection.

Requirements:

  • Python
  • Django

Other Software of Developer Praekelt Foundation

jmbo-calendar
jmbo-calendar

11 May 15

jmbo-skeleton
jmbo-skeleton

20 Feb 15

jmbo-post
jmbo-post

20 Feb 15

jmbo-foundry
jmbo-foundry

20 Feb 15

Comments to django-scaler

Comments not found
Add Comment
Turn on images!