fix: config.json变化时不触发hot_reload事件,避免不必要的模块缓存清理

config变化只重新加载JsonConfig单例;
信号文件/HTTP端点/i18n变化才触发hot_reload事件清理缓存。
This commit is contained in:
yumoqing 2026-06-01 22:49:28 +08:00
parent 4522a29ec6
commit b51d3f28d6

View File

@ -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