mirror of
https://github.com/evennia/evennia.git
synced 2026-04-07 00:45:22 +02:00
Added fix to object.contents cache as well as reworked the extent of cache hooks on location modification.
This commit is contained in:
parent
07af616b67
commit
06a0bea8d6
11 changed files with 125 additions and 653 deletions
|
|
@ -111,133 +111,6 @@ class ScriptDB(TypedObject):
|
|||
_SA(self, "attributes", AttributeHandler(self))
|
||||
#_SA(self, "aliases", AliasHandler(self, category_prefix="script_"))
|
||||
|
||||
# Wrapper properties to easily set database fields. These are
|
||||
# @property decorators that allows to access these fields using
|
||||
# normal python operations (without having to remember to save()
|
||||
# etc). So e.g. a property 'attr' has a get/set/del decorator
|
||||
# defined that allows the user to do self.attr = value,
|
||||
# value = self.attr and del self.attr respectively (where self
|
||||
# is the script in question).
|
||||
|
||||
# desc property (wraps db_desc)
|
||||
#@property
|
||||
#def __desc_get(self):
|
||||
# "Getter. Allows for value = self.desc"
|
||||
# return self.db_desc
|
||||
##@desc.setter
|
||||
#def __desc_set(self, value):
|
||||
# "Setter. Allows for self.desc = value"
|
||||
# self.db_desc = value
|
||||
# self.save()
|
||||
##@desc.deleter
|
||||
#def __desc_del(self):
|
||||
# "Deleter. Allows for del self.desc"
|
||||
# self.db_desc = ""
|
||||
# self.save()
|
||||
#desc = property(__desc_get, __desc_set, __desc_del)
|
||||
|
||||
# obj property (wraps db_obj)
|
||||
#@property
|
||||
#def __obj_get(self):
|
||||
# "Getter. Allows for value = self.obj"
|
||||
# return self.db_obj
|
||||
##@obj.setter
|
||||
#def __obj_set(self, value):
|
||||
# "Setter. Allows for self.obj = value"
|
||||
# self.db_obj = value
|
||||
# self.save()
|
||||
##@obj.deleter
|
||||
#def __obj_del(self):
|
||||
# "Deleter. Allows for del self.obj"
|
||||
# self.db_obj = None
|
||||
# self.save()
|
||||
#obj = property(__obj_get, __obj_set, __obj_del)
|
||||
|
||||
# interval property (wraps db_interval)
|
||||
#@property
|
||||
#def __interval_get(self):
|
||||
# "Getter. Allows for value = self.interval"
|
||||
# return self.db_interval
|
||||
##@interval.setter
|
||||
#def __interval_set(self, value):
|
||||
# "Setter. Allows for self.interval = value"
|
||||
# self.db_interval = int(value)
|
||||
# self.save()
|
||||
##@interval.deleter
|
||||
#def __interval_del(self):
|
||||
# "Deleter. Allows for del self.interval"
|
||||
# self.db_interval = 0
|
||||
# self.save()
|
||||
#interval = property(__interval_get, __interval_set, __interval_del)
|
||||
|
||||
# start_delay property (wraps db_start_delay)
|
||||
#@property
|
||||
#def __start_delay_get(self):
|
||||
# "Getter. Allows for value = self.start_delay"
|
||||
# return self.db_start_delay
|
||||
##@start_delay.setter
|
||||
#def __start_delay_set(self, value):
|
||||
# "Setter. Allows for self.start_delay = value"
|
||||
# self.db_start_delay = value
|
||||
# self.save()
|
||||
##@start_delay.deleter
|
||||
#def __start_delay_del(self):
|
||||
# "Deleter. Allows for del self.start_delay"
|
||||
# self.db_start_delay = False
|
||||
# self.save()
|
||||
#start_delay = property(__start_delay_get, __start_delay_set, __start_delay_del)
|
||||
|
||||
# repeats property (wraps db_repeats)
|
||||
#@property
|
||||
#def __repeats_get(self):
|
||||
# "Getter. Allows for value = self.repeats"
|
||||
# return self.db_repeats
|
||||
##@repeats.setter
|
||||
#def __repeats_set(self, value):
|
||||
# "Setter. Allows for self.repeats = value"
|
||||
# self.db_repeats = int(value)
|
||||
# self.save()
|
||||
##@repeats.deleter
|
||||
#def __repeats_del(self):
|
||||
# "Deleter. Allows for del self.repeats"
|
||||
# self.db_repeats = 0
|
||||
# self.save()
|
||||
#repeats = property(__repeats_get, __repeats_set, __repeats_del)
|
||||
|
||||
# persistent property (wraps db_persistent)
|
||||
#@property
|
||||
#def __persistent_get(self):
|
||||
# "Getter. Allows for value = self.persistent"
|
||||
# return self.db_persistent
|
||||
##@persistent.setter
|
||||
#def __persistent_set(self, value):
|
||||
# "Setter. Allows for self.persistent = value"
|
||||
# self.db_persistent = value
|
||||
# self.save()
|
||||
##@persistent.deleter
|
||||
#def __persistent_del(self):
|
||||
# "Deleter. Allows for del self.persistent"
|
||||
# self.db_persistent = False
|
||||
# self.save()
|
||||
#persistent = property(__persistent_get, __persistent_set, __persistent_del)
|
||||
|
||||
# is_active property (wraps db_is_active)
|
||||
#@property
|
||||
#def __is_active_get(self):
|
||||
# "Getter. Allows for value = self.is_active"
|
||||
# return self.db_is_active
|
||||
##@is_active.setter
|
||||
#def __is_active_set(self, value):
|
||||
# "Setter. Allows for self.is_active = value"
|
||||
# self.db_is_active = value
|
||||
# self.save()
|
||||
##@is_active.deleter
|
||||
#def __is_active_del(self):
|
||||
# "Deleter. Allows for del self.is_active"
|
||||
# self.db_is_active = False
|
||||
# self.save()
|
||||
#is_active = property(__is_active_get, __is_active_set, __is_active_del)
|
||||
|
||||
#
|
||||
#
|
||||
# ScriptDB class properties
|
||||
|
|
|
|||
|
|
@ -19,8 +19,6 @@ from src.utils import logger, is_pypy
|
|||
from django.utils.translation import ugettext as _
|
||||
|
||||
__all__ = ["Script", "DoNothing", "CheckSessions", "ValidateScripts", "ValidateChannelHandler"]
|
||||
if not is_pypy:
|
||||
__all__.append("ClearAttributeCache")
|
||||
|
||||
_SESSIONS = None
|
||||
_ATTRIBUTE_CACHE_MAXSIZE = settings.ATTRIBUTE_CACHE_MAXSIZE # attr-cache size in MB.
|
||||
|
|
@ -451,19 +449,19 @@ class ValidateChannelHandler(Script):
|
|||
#print "ValidateChannelHandler run."
|
||||
channelhandler.CHANNELHANDLER.update()
|
||||
|
||||
class ClearAttributeCache(Script):
|
||||
"Clear the attribute cache."
|
||||
def at_script_creation(self):
|
||||
"Setup the script"
|
||||
self.key = "sys_cache_clear"
|
||||
self.desc = _("Clears the Attribute Cache")
|
||||
self.interval = 3600 * 2
|
||||
self.persistent = True
|
||||
def at_repeat(self):
|
||||
"called every 2 hours. Sets a max attr-cache limit to 100 MB." # enough for normal usage?
|
||||
if is_pypy:
|
||||
# pypy don't support get_size, so we have to skip out here.
|
||||
return
|
||||
attr_cache_size, _, _ = caches.get_cache_sizes()
|
||||
if attr_cache_size > _ATTRIBUTE_CACHE_MAXSIZE:
|
||||
caches.flush_attr_cache()
|
||||
#class ClearAttributeCache(Script):
|
||||
# "Clear the attribute cache."
|
||||
# def at_script_creation(self):
|
||||
# "Setup the script"
|
||||
# self.key = "sys_cache_clear"
|
||||
# self.desc = _("Clears the Attribute Cache")
|
||||
# self.interval = 3600 * 2
|
||||
# self.persistent = True
|
||||
# def at_repeat(self):
|
||||
# "called every 2 hours. Sets a max attr-cache limit to 100 MB." # enough for normal usage?
|
||||
# if is_pypy:
|
||||
# # pypy don't support get_size, so we have to skip out here.
|
||||
# return
|
||||
# attr_cache_size, _, _ = caches.get_cache_sizes()
|
||||
# if attr_cache_size > _ATTRIBUTE_CACHE_MAXSIZE:
|
||||
# caches.flush_attr_cache()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue