Further migrated script caches to the central cache location, removing old cruft.

This commit is contained in:
Griatch 2012-11-08 19:29:57 +01:00
parent 98d0eb7869
commit 8654d8cc48
3 changed files with 17 additions and 41 deletions

View file

@ -11,9 +11,9 @@ from collections import defaultdict
from twisted.internet.defer import maybeDeferred from twisted.internet.defer import maybeDeferred
from twisted.internet.task import LoopingCall from twisted.internet.task import LoopingCall
from django.conf import settings from django.conf import settings
from src.server import caches
from src.server.sessionhandler import SESSIONS from src.server.sessionhandler import SESSIONS
from src.typeclasses.typeclass import TypeClass from src.typeclasses.typeclass import TypeClass
from src.typeclasses.models import _ATTRIBUTE_CACHE
from src.scripts.models import ScriptDB from src.scripts.models import ScriptDB
from src.comms import channelhandler from src.comms import channelhandler
from src.utils import logger from src.utils import logger
@ -449,7 +449,6 @@ class ClearAttributeCache(Script):
self.persistent = True self.persistent = True
def at_repeat(self): def at_repeat(self):
"called every 2 hours. Sets a max attr-cache limit to 100 MB." # enough for normal usage? "called every 2 hours. Sets a max attr-cache limit to 100 MB." # enough for normal usage?
global _ATTRIBUTE_CACHE attr_cache_size, _, _ = caches.get_cache_sizes()
size = sum([sum([getsizeof(obj) for obj in dic.values()]) for dic in _ATTRIBUTE_CACHE.values()]) if attr_cache_size > _ATTRIBUTE_CACHE_MAXSIZE:
if size / 1024.0 > _ATTRIBUTE_CACHE_MAXSIZE: caches.flush_attr_cache()
_ATTRIBUTE_CACHE = defaultdict(dict)

View file

@ -89,9 +89,12 @@ def del_field_cache(obj, name):
def flush_field_cache(obj): def flush_field_cache(obj):
"On-model cache resetter" "On-model cache resetter"
hid = hashid(obj) hid = hashid(obj)
if hid:
global _FIELD_CACHE global _FIELD_CACHE
if hid:
del _FIELD_CACHE[hashid(obj)] del _FIELD_CACHE[hashid(obj)]
else:
# clean cache completely
_FIELD_CACHE = defaultdict(dict)
# on-object property cache (unrelated to database) # on-object property cache (unrelated to database)
# Note that the get/set_prop_cache handler do not actually # Note that the get/set_prop_cache handler do not actually
@ -128,10 +131,12 @@ def del_prop_cache(obj, name):
def flush_field_cache(obj): def flush_field_cache(obj):
"On-model cache resetter" "On-model cache resetter"
hid = hashid(obj) hid = hashid(obj)
if hid:
global _PROP_CACHE global _PROP_CACHE
if hid:
del _PROP_CACHE[hashid(obj)] del _PROP_CACHE[hashid(obj)]
else:
# clean cache completely
_PROP_CACHE = defaultdict(dict)
# attribute cache # attribute cache
@ -163,4 +168,8 @@ def flush_attr_cache(obj):
Flush the attribute cache for this object. Flush the attribute cache for this object.
""" """
global _ATTR_CACHE global _ATTR_CACHE
if obj:
del _ATTR_CACHE[hashid(obj)] del _ATTR_CACHE[hashid(obj)]
else:
# clean cache completely
_ATTR_CACHE = defaultdict(dict)

View file

@ -59,38 +59,6 @@ _DA = object.__delattr__
_PLOADS = pickle.loads _PLOADS = pickle.loads
_PDUMPS = pickle.dumps _PDUMPS = pickle.dumps
# Property Cache mechanism.
#def _get_cache(obj, name):
# "On-model Cache handler."
# try:
# return _GA(obj, "_cached_db_%s" % name)
# except AttributeError:
# val = _GA(obj, "db_%s" % name)
# _SA(obj, "_cached_db_%s" % name, val)
# return val
#def set_prop_cache(obj, name, val):
# "On-model Cache setter. Also updates database."
# _SA(obj, "db_%s" % name, val)
# _GA(obj, "save")()
# _SA(obj, "_cached_db_%s" % name, val)
#def del_prop_cache(obj, name):
# "On-model cache deleter"
# try:
# _DA(obj, "_cached_db_%s" % name)
# except AttributeError:
# pass
#def _clean_cache(obj):
# "On-model cache resetter"
# [_DA(obj, cname) for cname in obj.__dict__.keys() if cname.startswith("_cached_db_")]
# this cache holds the attributes loaded on objects, one dictionary
# of attributes per object.
_ATTRIBUTE_CACHE = defaultdict(dict)
#------------------------------------------------------------ #------------------------------------------------------------
# #
# Attributes # Attributes