From 436a126e3b537418e7c38e35894f66d7afc85093 Mon Sep 17 00:00:00 2001 From: cirry <812852553@qq.com> Date: Sun, 16 Aug 2026 21:41:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=B7=BB=E5=8A=A0=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E7=AD=96=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/cache.py | 3 ++- backend/app/data/market_overview.py | 7 ++++--- backend_run.log | 5 +++++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/backend/app/cache.py b/backend/app/cache.py index 185400c..6fcf631 100644 --- a/backend/app/cache.py +++ b/backend/app/cache.py @@ -65,7 +65,8 @@ async def cache_set(key: str, value: Any, ttl: int) -> None: if c is None: return try: - await c.set(key, json.dumps(value, ensure_ascii=False), ex=max(1, ttl)) + # default=str:value 里混入 datetime/date 也不炸(炸了会触发 _bail 毒死整个缓存层) + await c.set(key, json.dumps(value, ensure_ascii=False, default=str), ex=max(1, ttl)) except Exception: # noqa: BLE001 _bail() diff --git a/backend/app/data/market_overview.py b/backend/app/data/market_overview.py index cbdb151..033056a 100644 --- a/backend/app/data/market_overview.py +++ b/backend/app/data/market_overview.py @@ -52,8 +52,9 @@ def _f(v) -> float | None: return None if math.isnan(f) else f -def _d(v) -> date | None: - return datetime.strptime(str(v), "%Y%m%d").date() if v else None +def _d(v) -> str | None: + """YYYYMMDD -> 'YYYY-MM-DD'(字符串便于 JSON 缓存;pydantic 响应模型自动 coerce)。""" + return datetime.strptime(str(v), "%Y%m%d").date().isoformat() if v else None def _get_pro(): @@ -152,7 +153,7 @@ async def fetch_overview() -> dict: errors.append(f"两市统计: {str(e)[:60]}") payload = { - "updated_at": datetime.now(), + "updated_at": datetime.now().isoformat(), # 字符串:cache_set 走 json.dumps "indexes": indexes, "stats": stats, "errors": errors, diff --git a/backend_run.log b/backend_run.log index 6784f1c..7aa2b95 100644 --- a/backend_run.log +++ b/backend_run.log @@ -4,3 +4,8 @@ INFO: Started reloader process [40700] using WatchFiles INFO: Started server process [42044] INFO: Waiting for application startup. INFO: Application startup complete. +INFO: 127.0.0.1:50860 - "GET /api/health HTTP/1.1" 200 OK +INFO: 127.0.0.1:50992 - "GET /api/market/overview HTTP/1.1" 401 Unauthorized +INFO: 127.0.0.1:50994 - "GET /api/market/overview HTTP/1.1" 401 Unauthorized +WARNING: WatchFiles detected changes in 'app\data\market_overview.py'. Reloading... + \ No newline at end of file