Skip to content

Commit 63d0850

Browse files
authored
Merge pull request jxxghp#5498 from cddjr/feat/recommend_manual_force_refresh
2 parents bf7cc6c + c866594 commit 63d0850

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

app/api/endpoints/system.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -615,7 +615,10 @@ def run_scheduler(jobid: str,
615615
"""
616616
if not jobid:
617617
return schemas.Response(success=False, message="命令不能为空!")
618-
Scheduler().start(jobid)
618+
if jobid in {"recommend_refresh", "cookiecloud"}:
619+
Scheduler().start(jobid, manual=True)
620+
else:
621+
Scheduler().start(jobid)
619622
return schemas.Response(success=True)
620623

621624

@@ -628,5 +631,8 @@ def run_scheduler2(jobid: str,
628631
if not jobid:
629632
return schemas.Response(success=False, message="命令不能为空!")
630633

631-
Scheduler().start(jobid)
634+
if jobid in {"recommend_refresh", "cookiecloud"}:
635+
Scheduler().start(jobid, manual=True)
636+
else:
637+
Scheduler().start(jobid)
632638
return schemas.Response(success=True)

app/chain/recommend.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from app.chain.bangumi import BangumiChain
77
from app.chain.douban import DoubanChain
88
from app.chain.tmdb import TmdbChain
9-
from app.core.cache import cached
9+
from app.core.cache import cached, fresh
1010
from app.core.config import settings, global_vars
1111
from app.helper.image import ImageHelper
1212
from app.log import logger
@@ -27,9 +27,11 @@ class RecommendChain(ChainBase, metaclass=Singleton):
2727
# 推荐缓存区域
2828
recommend_cache_region = "recommend"
2929

30-
def refresh_recommend(self):
30+
def refresh_recommend(self, manual: bool = False):
3131
"""
3232
刷新推荐
33+
34+
:param manual: 手动触发
3335
"""
3436
logger.debug("Starting to refresh Recommend data.")
3537

@@ -62,7 +64,9 @@ def refresh_recommend(self):
6264
if method in methods_finished:
6365
continue
6466
logger.debug(f"Fetch {method.__name__} data for page {page}.")
65-
data = method(page=page)
67+
# 手动触发的刷新,总是需要获取最新数据
68+
with fresh(manual):
69+
data = method(page=page)
6670
if not data:
6771
logger.debug("All recommendation methods have finished fetching data. Ending pagination early.")
6872
methods_finished.add(method)
@@ -90,7 +94,6 @@ def __cache_posters(self, datas: List[dict]):
9094
poster_path = data.get("poster_path")
9195
if poster_path:
9296
poster_url = poster_path.replace("original", "w500")
93-
logger.debug(f"Caching poster image: {poster_url}")
9497
self.__fetch_and_save_image(poster_url)
9598

9699
@staticmethod

0 commit comments

Comments
 (0)