Further migrated script caches to the central cache location, removing old cruft.
This commit is contained in:
parent
98d0eb7869
commit
8654d8cc48
3 changed files with 17 additions and 41 deletions
|
|
@ -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)
|
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue