From e37eb49065abfda70abdfcf5f70ddd748f49aa74 Mon Sep 17 00:00:00 2001 From: David Ormsbee Date: Thu, 15 Mar 2012 14:45:27 -0400 Subject: [PATCH] Shift wiki and course.xml caching to use newly defined 'general' cache, separate from sessions left in 'default' --HG-- branch : cache_separation --- courseware/content_parser.py | 3 ++- simplewiki/models.py | 3 ++- util/cache.py | 16 ++++++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 util/cache.py diff --git a/courseware/content_parser.py b/courseware/content_parser.py index cc02597cb3..2c6a515c63 100644 --- a/courseware/content_parser.py +++ b/courseware/content_parser.py @@ -11,10 +11,11 @@ from lxml import etree try: # This lets us do __name__ == ='__main__' from django.conf import settings - from django.core.cache import cache + from student.models import UserProfile from student.models import UserTestGroup from mitxmako.shortcuts import render_to_response, render_to_string + from util.cache import cache except: settings = None diff --git a/simplewiki/models.py b/simplewiki/models.py index 58173e0ca0..33c9b0403e 100644 --- a/simplewiki/models.py +++ b/simplewiki/models.py @@ -3,7 +3,6 @@ import os from django import forms from django.contrib.auth.models import User -from django.core.cache import cache from django.core.urlresolvers import reverse from django.db import models from django.db.models import signals @@ -11,6 +10,8 @@ from django.utils.translation import ugettext_lazy as _ from markdown import markdown from settings import * +from util.cache import cache + class ShouldHaveExactlyOneRootSlug(Exception): pass diff --git a/util/cache.py b/util/cache.py new file mode 100644 index 0000000000..b0c370a035 --- /dev/null +++ b/util/cache.py @@ -0,0 +1,16 @@ +""" +This module aims to give a little more fine-tuned control of caching and cache +invalidation. Import these instead of django.core.cache. + +Note that 'default' is being preserved for user session caching, which we're +not migrating so as not to inconvenience users by logging them all out. +""" +from django.core import cache + +# If we can't find a 'general' CACHE defined in settings.py, we simply fall back +# to returning the default cache. This will happen with dev machines. +try: + cache = cache.get_cache('general') +except ValueError: + cache = cache.cache +