fix TTLCache

This commit is contained in:
jxxghp
2025-08-21 16:54:49 +08:00
parent a59730f6eb
commit 0b199b8421
3 changed files with 43 additions and 18 deletions
+9 -9
View File
@@ -3,7 +3,7 @@ import traceback
from pathlib import Path
from threading import RLock
from app.core.cache import Cache
from app.core.cache import TTLCache
from app.core.config import settings
from app.core.meta import MetaBase
from app.log import logger
@@ -32,7 +32,7 @@ class TmdbCache(metaclass=WeakSingleton):
self.region = "__tmdb_cache__"
self._meta_filepath = settings.TEMP_PATH / self.region
# 初始化缓存
self._cache = Cache(maxsize=self.maxsize, ttl=self.ttl)
self._cache = TTLCache(region=self.region, maxsize=self.maxsize, ttl=self.ttl)
# 非Redis加载本地缓存数据
if not self._cache.is_redis():
for key, value in self.__load(self._meta_filepath).items():
@@ -59,7 +59,7 @@ class TmdbCache(metaclass=WeakSingleton):
key = self.__get_key(meta)
with lock:
return self._cache.get(key, region=self.region) or {}
return self._cache.get(key) or {}
def delete(self, key: str) -> dict:
"""
@@ -68,9 +68,9 @@ class TmdbCache(metaclass=WeakSingleton):
@return: 被删除的缓存内容
"""
with lock:
redis_data = self._cache.get(key, region=self.region)
redis_data = self._cache.get(key)
if redis_data:
self._cache.delete(key, region=self.region)
self._cache.delete(key)
return redis_data
return {}
@@ -82,10 +82,10 @@ class TmdbCache(metaclass=WeakSingleton):
@return: 被修改后缓存内容
"""
with lock:
redis_data = self._cache.get(key, region=self.region)
redis_data = self._cache.get(key)
if redis_data:
redis_data['title'] = title
self._cache.set(key, redis_data, region=self.region)
self._cache.set(key, redis_data)
return redis_data
return {}
@@ -128,12 +128,12 @@ class TmdbCache(metaclass=WeakSingleton):
"poster_path": info.get("poster_path"),
"backdrop_path": info.get("backdrop_path")
}
self._cache.set(key, cache_data, region=self.region)
self._cache.set(key, cache_data)
elif info is not None:
# None时不缓存,此时代表网络错误,允许重复请求
with lock:
self._cache.set(key, {"id": 0}, region=self.region)
self._cache.set(key, {"id": 0})
def save(self, force: bool = False) -> None:
"""