def _delete_expired_key(self, key): ''' @summary: 指定されたパスのファイルが期限切れの場合、削除します ''' path = build_path(self.cache_dir, key) data = load(path) if is_expired(data.expiration_date): # 古いキャッシュの際は削除する self._delete_file(path)
def _save(self): ''' @summary: 現在のメモリキャッシュでキャッシュファイルを更新します ''' try: for key, cache in self.cache.iteritems(): dump(cache, build_path(self.cache_dir, key)) except Exception: # pickle error raise
def _save_async(self): ''' @summary: 非同期に現在のメモリキャッシュでキャッシュファイルを更新します SimpleCacheInstance.save(async=True) ''' try: for key, cache in self.cache.iteritems(): AsyncSaveFile(build_path(self.cache_dir, key), cache) except Exception: # pickle error raise
def _store_cache_file(self, key, val, expiration_date): ''' @summary: ファイル上のキャッシュにキーと値を格納します ''' try: if isinstance(val, unicode): val = val.encode(self.default_encoding) dump(_CacheData(val=val, expiration_date=expiration_date), build_path(self.cache_dir, key)) except Exception: raise
def _fetch_cache_file(self, key): ''' @summary: 指定したキーでファイル上からデータを取得します ''' try: path = build_path(self.cache_dir, key) data = load(path) if is_expired(data.expiration_date): raise ExpiredError("ExpiredError") except IOError: # if not exists file raise KeyError(key) except OSError: # Not Found key-cachefile raise KeyError(key) except ValueError,err: raise ValueError("Cache File '%s' style is wrong." % path)