merged in session cache separation
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -157,10 +158,7 @@ def user_groups(user):
|
||||
cache_expiration = 60 * 60 # one hour
|
||||
|
||||
# Kill caching on dev machines -- we switch groups a lot
|
||||
if "dev" not in settings.DEFAULT_GROUPS:
|
||||
group_names = cache.get(fasthash(key))
|
||||
else:
|
||||
group_names = None
|
||||
group_names = cache.get(fasthash(key))
|
||||
|
||||
if group_names is None:
|
||||
group_names = [u.name for u in UserTestGroup.objects.filter(users=user)]
|
||||
|
||||
@@ -163,6 +163,13 @@ MAKO_TEMPLATES = {}
|
||||
|
||||
LOGGING_ENV = "dev" # override this in different environments
|
||||
|
||||
# Default dev cache (i.e. no caching)
|
||||
CACHES = {
|
||||
'default': {
|
||||
'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
|
||||
}
|
||||
}
|
||||
|
||||
# Make sure we execute correctly regardless of where we're called from
|
||||
execfile(os.path.join(BASE_DIR, "settings.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
|
||||
|
||||
16
util/cache.py
Normal file
16
util/cache.py
Normal file
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user