示例#1
0
 def publish_by(self, *args):
     # cache ourselves, keyed by the fields given
     kwargs = {}
     for field in args:
         kwargs[field] = getattr(self, field)
     key = generate_cache_key([self.__class__.__name__, "get"], **kwargs)
     cache.set(key, self, CACHE_FOREVER_TIMEOUT)
 def _fetch_index(self, field_name):
     cache_key = generate_cache_key([self.model.__name__, "table"],
                                    field_name)
     table = cache.get(cache_key)
     if table is None:
         table = self._rebuild_index(field_name)
     return table
 def wrapper(self, *args, **kwargs):
     key = generate_cache_key([self.__class__.__name__, self.model_version, target.__name__, self.pk], *args, **kwargs)
     data = cache.get(key)
     if data is None:
         data = target(self, *args, **kwargs)
         cache.set(key, data, CACHE_FOREVER_TIMEOUT)
     return data
 def get_or_create(self, **kwargs):
     key = generate_cache_key([self.model.__name__, "get"], **kwargs)
     obj = cache.get(key)
     if obj is None:
         return super(CacheModelManager, self).get_or_create(**kwargs)
     else:
         return obj, False
 def get_or_create(self, **kwargs):
     key = generate_cache_key([self.model.__name__, "get"], **kwargs)
     obj = cache.get(key)
     if obj is None:
         return super(CacheModelManager, self).get_or_create(**kwargs)
     else:
         return obj, False
示例#6
0
 def publish_method(self, method_name, *args, **kwargs):
     method = getattr(self, method_name, None)
     if not getattr(method, '_cached_method', False):
         raise AttributeError("method '%s' is not a cached_method.");
     target = getattr(method, '_cached_method_target', None)
     if callable(target):
         key = generate_cache_key([self.__class__.__name__, target.__name__, self.pk], *args, **kwargs)
         data = target(self, *args, **kwargs)
         cache.set(key, data, CACHE_FOREVER_TIMEOUT)
 def wrapper(self, *args, **kwargs):
     key = generate_cache_key(
         [self.__class__.__name__, target.__name__, self.pk], *args,
         **kwargs)
     data = cache.get(key)
     if data is None:
         data = target(self, *args, **kwargs)
         cache.set(key, data, CACHE_FOREVER_TIMEOUT)
     return data
    def get(self, **kwargs):
        key = generate_cache_key([self.model.__name__, "get"], **kwargs)
        obj = cache.get(key)
        if obj is None:
            obj = super(CacheModelManager, self).get(**kwargs)
            cache.set(key, obj, CACHE_FOREVER_TIMEOUT)

            # update cache_key_index with obj.pk <- key
        return obj
 def _rebuild_index(self, field_name):
     cache_key = generate_cache_key([self.model.__name__, "table"], field_name)
     table = {}
     for obj in super(CachedTableManager, self).all().select_related():
         key = getattr(obj, field_name, None)
         if key is not None:
             table[key] = obj
     cache.set(cache_key, table, CACHE_FOREVER_TIMEOUT);
     return table
    def get(self, **kwargs):
        key = generate_cache_key([self.model.__name__, "get"], **kwargs)
        obj = cache.get(key)
        if obj is None:
            obj = super(CacheModelManager, self).get(**kwargs)
            cache.set(key, obj, CACHE_FOREVER_TIMEOUT)

            # update cache_key_index with obj.pk <- key
        return obj
示例#11
0
 def _rebuild_index(self, field_name):
     cache_key = generate_cache_key([self.model.__name__, "table"], field_name)
     table = {}
     for obj in super(CachedTableManager, self).all().select_related():
         key = getattr(obj, field_name, None)
         if key is not None:
             table[key] = obj
     cache.set(cache_key, table, CACHE_FOREVER_TIMEOUT);
     return table
示例#12
0
 def remove_cached_data(self, method_names):
     """
     Deletes the cached values for the given method names
     """
     for method_name in method_names:
         method = getattr(self, method_name, None)
         if not getattr(method, '_cached_method', False):
             raise AttributeError("method '%s' is not a cached_method.")
         target = getattr(method, '_cached_method_target', None)
         if callable(target):
             key = generate_cache_key(
                 [self.__class__.__name__, target.__name__, self.pk])
             cache.delete(key)
示例#13
0
 def publish_key(self, *args):
     kwargs = {}
     for field in args:
         kwargs[field] = getattr(self, field)
     return generate_cache_key([self.__class__.__name__, "get"], **kwargs)
示例#14
0
 def _fetch_index(self, field_name):
     cache_key = generate_cache_key([self.model.__name__, "table"], field_name)
     table = cache.get(cache_key)
     if table is None:
         table = self._rebuild_index(field_name)
     return table
 def publish_key(self, *args):
     kwargs = {}
     for field in args:
         kwargs[field] = getattr(self, field)
     return generate_cache_key([self.__class__.__name__, self.model_version, "get"], **kwargs)