From 9f5596a43f4142d50412b774ec5cd0b9876dc375 Mon Sep 17 00:00:00 2001 From: "Neal H. Walfield" Date: Wed, 14 Sep 2011 14:30:44 +0200 Subject: [PATCH] Fix cache management. - After determining that the cache is invalid, actually rebuild it. --- src/rss_sqlite.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/rss_sqlite.py b/src/rss_sqlite.py index 077fce0..2e96225 100644 --- a/src/rss_sqlite.py +++ b/src/rss_sqlite.py @@ -139,7 +139,9 @@ class BaseObject(object): cache = self.cache[table] if time.time() - cache[None] > 60: - self.cache[table].clear() + # logger.debug("%s: Cache too old: clearing" % (table,)) + del self.cache[table] + cache = None except KeyError: cache = None @@ -148,6 +150,8 @@ class BaseObject(object): # The cache is empty or the caller wants a column that we # don't cache. if (table, column) in self.cached_columns: + # logger.debug("%s: Rebuilding cache" % (table,)) + do_cache = True self.cache[table] = cache = {} @@ -193,10 +197,13 @@ class BaseObject(object): try: if id is not None: - return cache[column][id] + value = cache[column][id] + # logger.debug("%s.%s:%s -> %s" % (table, column, id, value)) + return value else: return cache[column].values() except KeyError: + # logger.debug("%s.%s:%s -> Not found" % (table, column, id)) return None class Feed(BaseObject): -- 1.7.9.5