fix(dashboard): warm cache after AI pick refresh
All checks were successful
CD Pipeline / deploy (push) Successful in 3m37s

This commit is contained in:
OoO
2026-05-01 16:16:39 +08:00
parent b447aefcfb
commit b3d00a011c
7 changed files with 18 additions and 5 deletions

View File

@@ -1625,6 +1625,7 @@ def api_generate_product_picks():
from sqlalchemy import create_engine
from services.ai_product_pick_agent import generate_product_pick_list
from services.cache_manager import clear_dashboard_cache
from routes.dashboard_routes import get_full_dashboard_data
payload = request.get_json(silent=True) or {}
limit = int(payload.get('limit', 50))
@@ -1633,6 +1634,11 @@ def api_generate_product_picks():
engine = create_engine(DATABASE_PATH)
result = generate_product_pick_list(engine, limit=limit)
clear_dashboard_cache()
dashboard_cache_warmed = False
try:
dashboard_cache_warmed = bool(get_full_dashboard_data())
except Exception as warm_err:
logger.warning(f"[ProductPickAgent] 商品看板快取預熱失敗: {warm_err}")
return jsonify({
'success': True,
@@ -1641,6 +1647,7 @@ def api_generate_product_picks():
'candidates': result.candidates,
'written': result.written,
'generated_at': result.generated_at,
'dashboard_cache_warmed': dashboard_cache_warmed,
'picks': result.picks[:50],
}
})
@@ -1668,6 +1675,8 @@ def api_pchome_match_backfill():
engine = create_engine(DATABASE_PATH)
result = CompetitorPriceFeeder(engine=engine).run_unmatched_priority(limit=limit)
pick_result = generate_product_pick_list(engine, limit=50)
from services.cache_manager import clear_dashboard_cache
clear_dashboard_cache()
logger.info(
"[PChomeBackfill] done total=%s matched=%s no=%s low=%s errors=%s history=%s duration=%ss pick_written=%s",
result.total_skus,