fix: 恢复迁移改为先切 Redis 再迁存量,消除 Snapshot 遗漏 gap
- 先 healthy.Store(true) 再 migrateSessions() - 先切后迁:新会话立即走 Redis,存量通过 Pipeline 补写 - 迁移失败保持 healthy=true,由下个健康检测周期处理
This commit is contained in:
@ -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 掉线,标记降级
|
||||
|
||||
Reference in New Issue
Block a user