예제 #1
0
파일: cache.py 프로젝트: bluele/Lamia
 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)
예제 #2
0
파일: cache.py 프로젝트: bluele/Lamia
 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
예제 #3
0
파일: cache.py 프로젝트: bluele/Lamia
 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
예제 #4
0
파일: cache.py 프로젝트: bluele/Lamia
 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
예제 #5
0
파일: cache.py 프로젝트: bluele/Lamia
 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)