def delete(self, key, namespace=None): from kay.ext.live_settings.models import KayLiveSetting old_namespace = namespace_manager.get_namespace() try: if namespace is not None: namespace_manager.set_namespace(namespace) setting = KayLiveSetting.get_by_key_name(key) if setting: setting.delete() memcache.delete("kay:live:%s" % key) self._del_local_cache(key, namespace=namespace) finally: if namespace is not None: namespace_manager.set_namespace(old_namespace)
def get(self, key, default=None, namespace=None): from kay.ext.live_settings.models import KayLiveSetting old_namespace = namespace_manager.get_namespace() try: if namespace is not None: namespace_manager.set_namespace(namespace) set_dictcache = False set_memcache = False value = self._get_local_cache(key, namespace=namespace) expire = _missing ttl = _missing if value is _missing: set_dictcache = True value = memcache.get("kay:live:%s" % key) if value: value, ttl = value else: value, ttl = (_missing, _missing) if value is _missing: set_memcache = True entity = KayLiveSetting.get_by_key_name(key) if entity: value = entity.value or _missing ttl = entity.ttl or _missing if value is _missing: return default else: if ttl is None or ttl is _missing: ttl = _DEFAULT_TTL if set_dictcache: self._set_local_cache(key, value, ttl=ttl, namespace=namespace) if set_memcache: memcache.set("kay:live:%s" % key, (value, ttl)) return value finally: if namespace is not None: namespace_manager.set_namespace(old_namespace)
def get(self, key, default=None, namespace=None): from kay.ext.live_settings.models import KayLiveSetting old_namespace = namespace_manager.get_namespace() try: if namespace is not None: namespace_manager.set_namespace(namespace) set_dictcache = False set_memcache = False value = self._get_local_cache(key, namespace=namespace) expire = _missing ttl = _missing if value is _missing: set_dictcache = True value = memcache.get("kay:live:%s" % key) if value: value,ttl = value else: value,ttl = (_missing, _missing) if value is _missing: set_memcache = True entity = KayLiveSetting.get_by_key_name(key) if entity: value = entity.value or _missing ttl = entity.ttl or _missing if value is _missing: return default else: if ttl is None or ttl is _missing: ttl = _DEFAULT_TTL if set_dictcache: self._set_local_cache(key, value, ttl=ttl, namespace=namespace) if set_memcache: memcache.set("kay:live:%s" % key, (value, ttl)) return value finally: if namespace is not None: namespace_manager.set_namespace(old_namespace)