From a2b53a9187c062569a175ed964e6426dac39eb69 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Sat, 10 Jun 2023 23:19:44 +0800 Subject: [PATCH] add tmdb cache lock --- app/modules/themoviedb/tmdb_cache.py | 41 ++++++++++++++-------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/app/modules/themoviedb/tmdb_cache.py b/app/modules/themoviedb/tmdb_cache.py index ba3618cf..ab24c8e8 100644 --- a/app/modules/themoviedb/tmdb_cache.py +++ b/app/modules/themoviedb/tmdb_cache.py @@ -125,26 +125,27 @@ class TmdbCache(metaclass=Singleton): """ 新增或更新缓存条目 """ - if info: - # 缓存标题 - cache_title = info.get("title") \ - if info.get("media_type") == MediaType.MOVIE else info.get("name") - # 缓存年份 - cache_year = info.get('release_date') \ - if info.get("media_type") == MediaType.MOVIE else info.get('first_air_date') - if cache_year: - cache_year = cache_year[:4] - self._meta_data[self.__get_key(meta)] = { - "id": str(info.get("id")), - "type": info.get("media_type"), - "year": cache_year, - "title": cache_title, - "poster_path": info.get("poster_path"), - "backdrop_path": info.get("backdrop_path"), - CACHE_EXPIRE_TIMESTAMP_STR: int(time.time()) + EXPIRE_TIMESTAMP - } - else: - self._meta_data[self.__get_key(meta)] = {'id': 0} + with lock: + if info: + # 缓存标题 + cache_title = info.get("title") \ + if info.get("media_type") == MediaType.MOVIE else info.get("name") + # 缓存年份 + cache_year = info.get('release_date') \ + if info.get("media_type") == MediaType.MOVIE else info.get('first_air_date') + if cache_year: + cache_year = cache_year[:4] + self._meta_data[self.__get_key(meta)] = { + "id": str(info.get("id")), + "type": info.get("media_type"), + "year": cache_year, + "title": cache_title, + "poster_path": info.get("poster_path"), + "backdrop_path": info.get("backdrop_path"), + CACHE_EXPIRE_TIMESTAMP_STR: int(time.time()) + EXPIRE_TIMESTAMP + } + else: + self._meta_data[self.__get_key(meta)] = {'id': 0} def save(self, force: bool = False) -> None: """