예제 #1
0
파일: cache.py 프로젝트: coopengo/trytond
 def __init__(self, *args, **kwargs):
     redis = get_cache_redis()
     if redis is None:
         self.cache = _Cache(*args, **kwargs)
     else:
         assert Redis is not None, 'Packages needed by Redis are missing'
         self.cache = Redis(*args, **kwargs)
예제 #2
0
파일: cache.py 프로젝트: coopengo/trytond
class Cache(object):
    # AKE: this class wraps technical holders and manage serialization
    def __init__(self, *args, **kwargs):
        redis = get_cache_redis()
        if redis is None:
            self.cache = _Cache(*args, **kwargs)
        else:
            assert Redis is not None, 'Packages needed by Redis are missing'
            self.cache = Redis(*args, **kwargs)

    def get(self, key, default=None):
        result = self.cache.get(key, Default)
        if result is Default:
            return default
        else:
            return msgpack.unpackb(result, encoding='utf-8',
                object_hook=decode_hook)

    def set(self, key, value):
        value = msgpack.packb(value, use_bin_type=True, default=encode_hook)
        self.cache.set(key, value)

    def clear(self):
        self.cache.clear()

    @staticmethod
    def clean(dbname):
        _Cache.clean(dbname)
        if Redis is not None:
            Redis.clean(dbname)

    @staticmethod
    def resets(dbname):
        _Cache.resets(dbname)
        if Redis is not None:
            Redis.resets(dbname)

    @staticmethod
    def drop(dbname):
        _Cache.drop(dbname)
        if Redis is not None:
            Redis.drop(dbname)
예제 #3
0
파일: cache.py 프로젝트: coopengo/trytond
 def drop(dbname):
     _Cache.drop(dbname)
     if Redis is not None:
         Redis.drop(dbname)
예제 #4
0
파일: cache.py 프로젝트: coopengo/trytond
 def resets(dbname):
     _Cache.resets(dbname)
     if Redis is not None:
         Redis.resets(dbname)
예제 #5
0
파일: cache.py 프로젝트: coopengo/trytond
 def clean(dbname):
     _Cache.clean(dbname)
     if Redis is not None:
         Redis.clean(dbname)