コード例 #1
0
ファイル: cache.py プロジェクト: pcardune/exercise-challenge
 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)
コード例 #2
0
ファイル: cache.py プロジェクト: pcardune/exercise-challenge
 def multiremove(self, keys):
     db = get_conn()
     db.execute("DELETE FROM cache WHERE `key` IN %s", keys)
コード例 #3
0
ファイル: cache.py プロジェクト: pcardune/exercise-challenge
 def remove(self, key):
     db = get_conn()
     db.execute("DELETE FROM cache WHERE `key`=%s", key)
コード例 #4
0
ファイル: cache.py プロジェクト: pcardune/exercise-challenge
 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))