From b51d3f28d6ca37f743d11197e745f47352a00045 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Mon, 1 Jun 2026 22:49:28 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20config.json=E5=8F=98=E5=8C=96=E6=97=B6?= =?UTF-8?q?=E4=B8=8D=E8=A7=A6=E5=8F=91hot=5Freload=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=EF=BC=8C=E9=81=BF=E5=85=8D=E4=B8=8D=E5=BF=85=E8=A6=81=E7=9A=84?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E7=BC=93=E5=AD=98=E6=B8=85=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit config变化只重新加载JsonConfig单例; 信号文件/HTTP端点/i18n变化才触发hot_reload事件清理缓存。 --- ahserver/hotreload.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ahserver/hotreload.py b/ahserver/hotreload.py index 92a4299..f1e8027 100644 --- a/ahserver/hotreload.py +++ b/ahserver/hotreload.py @@ -203,7 +203,11 @@ async def hot_reload_task(app, reloader): reloaded = reloader.check_and_reload() if reloaded: info(f'[hot_reload] reloaded: {list(reloaded.keys())}') - await dispatcher.dispatch('hot_reload', reloaded) + # Only dispatch hot_reload event for non-config changes + # Config-only reload just refreshes JsonConfig singleton, no cache clearing needed + needs_cache_clear = any(k != 'config' for k in reloaded) + if needs_cache_clear: + await dispatcher.dispatch('hot_reload', reloaded) except asyncio.CancelledError: info('[hot_reload] stopped') raise