mirror of
https://github.com/evennia/evennia.git
synced 2026-03-22 07:46:30 +01:00
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.task import LoopingCall
|
||||
from django.conf import settings
|
||||
from src.server import caches
|
||||
from src.server.sessionhandler import SESSIONS
|
||||
from src.typeclasses.typeclass import TypeClass
|
||||
from src.typeclasses.models import _ATTRIBUTE_CACHE
|
||||
from src.scripts.models import ScriptDB
|
||||
from src.comms import channelhandler
|
||||
from src.utils import logger
|
||||
|
|
@ -449,7 +449,6 @@ class ClearAttributeCache(Script):
|
|||
self.persistent = True
|
||||
def at_repeat(self):
|
||||
"called every 2 hours. Sets a max attr-cache limit to 100 MB." # enough for normal usage?
|
||||
global _ATTRIBUTE_CACHE
|
||||
size = sum([sum([getsizeof(obj) for obj in dic.values()]) for dic in _ATTRIBUTE_CACHE.values()])
|
||||
if size / 1024.0 > _ATTRIBUTE_CACHE_MAXSIZE:
|
||||
_ATTRIBUTE_CACHE = defaultdict(dict)
|
||||
attr_cache_size, _, _ = caches.get_cache_sizes()
|
||||
if attr_cache_size > _ATTRIBUTE_CACHE_MAXSIZE:
|
||||
caches.flush_attr_cache()
|
||||
|
|
|
|||
|
|
@ -89,9 +89,12 @@ def del_field_cache(obj, name):
|
|||
def flush_field_cache(obj):
|
||||
"On-model cache resetter"
|
||||
hid = hashid(obj)
|
||||
global _FIELD_CACHE
|
||||
if hid:
|
||||
global _FIELD_CACHE
|
||||
del _FIELD_CACHE[hashid(obj)]
|
||||
else:
|
||||
# clean cache completely
|
||||
_FIELD_CACHE = defaultdict(dict)
|
||||
|
||||
# on-object property cache (unrelated to database)
|
||||
# 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):
|
||||
"On-model cache resetter"
|
||||
hid = hashid(obj)
|
||||
global _PROP_CACHE
|
||||
if hid:
|
||||
global _PROP_CACHE
|
||||
del _PROP_CACHE[hashid(obj)]
|
||||
|
||||
else:
|
||||
# clean cache completely
|
||||
_PROP_CACHE = defaultdict(dict)
|
||||
|
||||
# attribute cache
|
||||
|
||||
|
|
@ -163,4 +168,8 @@ def flush_attr_cache(obj):
|
|||
Flush the attribute cache for this object.
|
||||
"""
|
||||
global _ATTR_CACHE
|
||||
del _ATTR_CACHE[hashid(obj)]
|
||||
if obj:
|
||||
del _ATTR_CACHE[hashid(obj)]
|
||||
else:
|
||||
# clean cache completely
|
||||
_ATTR_CACHE = defaultdict(dict)
|
||||
|
|
|
|||
|
|
@ -59,38 +59,6 @@ _DA = object.__delattr__
|
|||
_PLOADS = pickle.loads
|
||||
_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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue