def set(self, key, val, timeout=24*60*60): delta = datetime.timedelta(seconds=timeout) db = get_conn() self.remove(key) expiration = datetime.datetime.now()+delta try: db.execute("INSERT INTO cache (`key`, `value`, `dt`) VALUES (%s, %s, %s)", key, pickle.dumps(val), expiration) except OperationalError, e: logging.error("Got error setting %r=%r in cache: %r", key, val, e)
def multiremove(self, keys): db = get_conn() db.execute("DELETE FROM cache WHERE `key` IN %s", keys)
def remove(self, key): db = get_conn() db.execute("DELETE FROM cache WHERE `key`=%s", key)
def get(self, key, default=None): db = get_conn() r = db.get("SELECT * FROM cache WHERE `key`=%s", key) if not r or not r.dt or r.dt < datetime.datetime.now(): return None return pickle.loads(str(r.value))