Skip to main content

Management tools for managing the cache

Project description

# sisu-cache-tools

Basic cache management tools for djangoCMS projects.

Implements a relatively automatic cache-invalidation capability and a
'precache' management command.

This is useful for sites that have largely static content and are using

## Installation

```` shell
pip install sisu-cache-tools

Then, add `cache_tools` to your project's INSTALLED_APPS in settings.
Sisu Cache Tools does not use an database models, so no migration is
necessary, but it must be added to INSTALLED_APPS, or the management commands
will not be found and the signal handlers will not "see" any signals.

## Automated Cache invalidation

To get the automated cache-invalidation, add 'taints_cache = True' as a class-
attribute on any models that contain objects that will change the way pages
appear. Using signals, this module will detect changes to those model objects
and invalidate the (entire) cache.

The cache can also be cleared with:

```` shell
python clearcache

## Automated Varnish Cache Invalidation (via BAN)

**New from version 0.1.0**

Assuming there are one or more Varnish cache servers with a VCL that includes something like:

```` vcl
acl purge {

sub vcl_recv {


if (req.request == "DELETE" && req.http.X-Ban-Host) {
if ( !client.ip ~purge ) {
error 405 "Not allowed";
ban("obj.http.x-host ~ " + req.http.X-Ban-Host);
error 200 "Banned";


and you have configured a list of these servers in settings.CACHE_SERVERS:

```` python

and you have django.contrib.sites in use in your settings:

```` python



Sisu Cache Tools will then send a DELETE request with the header X-Ban-Host to your Varnish cache servers so that even your remote caches are "cleared" too.

## Pre-emptive Caching

When the operator is done with all of their changes, the might consider using:

```` shell
python precache

to make HTTP requests to every page found in the sitemaps defined in the
ROOT_URLCONF. This will essentially preemptively load the pages into the cache
so your visitors will get speedy access, even if they're the first one to
'hit' a given page.

Also, to simply review all of the URLs, the operator can use:

```` shell
python listurls

And it will print all of the known URLs to stdout.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
sisu-cache-tools-0.1.6.tar.gz (6.5 kB) Copy SHA256 hash SHA256 Source None Jan 4, 2015

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page