diff --git a/internal/session/fallback_store.go b/internal/session/fallback_store.go index 1614492..a7874df 100644 --- a/internal/session/fallback_store.go +++ b/internal/session/fallback_store.go @@ -51,9 +51,10 @@ func (fs *FallbackStore) healthLoop(interval time.Duration) { ok := fs.ping() if ok && !prev { - // Redis 恢复:先迁移内存会话,再切回 Redis - fs.migrateSessions() + // Redis 恢复:先切到 Redis(新会话立即走 Redis),再迁移内存存量 + // 先切后迁:Snapshot 和 healthy 切换之间零 gap,不存在遗漏 fs.healthy.Store(true) + fs.migrateSessions() fs.degraded.Store(false) } else if !ok && prev { // Redis 掉线,标记降级