Browse Source

Lazily initiate caches in cachebuster

Rafał Pitoń 11 years ago
parent
commit
62d3a9269c
1 changed files with 8 additions and 1 deletions
  1. 8 1
      misago/core/cachebuster.py

+ 8 - 1
misago/core/cachebuster.py

@@ -1,6 +1,5 @@
 from django.db.models import F
 from misago.core import threadstore
-from misago.core.cache import cache as default_cache
 
 
 CACHE_KEY = 'misago_cachebuster'
@@ -13,6 +12,7 @@ class CacheBusterController(object):
 
     def unregister_cache(self, cache):
         from misago.core.models import CacheVersion
+
         try:
             cache = CacheVersion.objects.get(cache=cache)
             cache.delete()
@@ -31,6 +31,8 @@ class CacheBusterController(object):
         return data
 
     def read_cache(self):
+        from misago.core.cache import cache as default_cache
+
         data = default_cache.get(CACHE_KEY, 'nada')
         if data == 'nada':
             data = self.read_db()
@@ -39,6 +41,7 @@ class CacheBusterController(object):
 
     def read_db(self):
         from misago.core.models import CacheVersion
+
         data = {}
         for cache_version in CacheVersion.objects.iterator():
             data[cache_version.cache] = cache_version.version
@@ -57,14 +60,18 @@ class CacheBusterController(object):
             raise ValueError('Cache "%s" is not registered' % cache)
 
     def invalidate_cache(self, cache):
+        from misago.core.cache import cache as default_cache
         from misago.core.models import CacheVersion
+
         self.cache[cache] += 1
         CacheVersion.objects.filter(cache=cache).update(
             version=F('version') + 1)
         default_cache.delete(CACHE_KEY)
 
     def invalidate_all(self):
+        from misago.core.cache import cache as default_cache
         from misago.core.models import CacheVersion
+
         CacheVersion.objects.update(version=F('version') + 1)
         default_cache.delete(CACHE_KEY)