From: Michael Tremer Date: Fri, 6 Oct 2017 17:20:59 +0000 (+0100) Subject: Initialise memcache only when we need it X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2021503f0018e8523791a0ca28da76f43a332ab5;p=pbs.git Initialise memcache only when we need it Signed-off-by: Michael Tremer --- diff --git a/src/buildservice/cache.py b/src/buildservice/cache.py index 8b64f9e4..c05cfe91 100644 --- a/src/buildservice/cache.py +++ b/src/buildservice/cache.py @@ -5,41 +5,45 @@ import memcache from . import base +from .decorators import * + +log = logging.getLogger("cache") +log.propagate = 1 + class Client(memcache.Client): def debuglog(self, str): - logging.debug("MemCached: %s" % str) + log.debug(str) class Cache(base.Object): key_prefix = "pbs_" - def __init__(self, pakfire): - base.Object.__init__(self, pakfire) - - logging.info("Initializing memcache...") - - # Fetching servers from the database configuration. + @property + def servers(self): servers = self.settings.get("memcache_servers", "") - self.servers = servers.split() - logging.info(" Using servers: %s" % ", ".join(self.servers)) + return servers.split() + + @lazy_property + def _cache(self): + logging.debug("Connecting to memcache...") - self._memcache = Client(self.servers, debug=1) + return Client(self.servers, debug=1) def get(self, key): - logging.debug("Querying memcache for: %s" % key) + log.debug("Querying for: %s" % key) key = "".join((self.key_prefix, key)) - return self._memcache.get(key) + return self._cache.get(key) def set(self, key, val, time=60, min_compress_len=0): key = "".join((self.key_prefix, key)) - return self._memcache.set(key, val, time=time, + return self._cache.set(key, val, time=time, min_compress_len=min_compress_len) def delete(self, key, time=0): key = "".join((self.key_prefix, key)) - return self._memcache.delete(key, time=time) + return self._cache.delete(key, time=time)