重构玩家缓存数据
This commit is contained in:
parent
a59fd1357b
commit
e87cdec240
@ -110,6 +110,9 @@ func (f *VarMgr) version() {
|
||||
// future version update
|
||||
f.fixbug() // 修复用户变量冗余数据
|
||||
f.getData().Version = 2
|
||||
case 2:
|
||||
f.translateToRedis() // 将用户变量迁移到Redis
|
||||
f.getData().Version = 3
|
||||
}
|
||||
}
|
||||
|
||||
@ -125,6 +128,21 @@ func (f *VarMgr) translateToRedis() {
|
||||
SaveUserVarData(key, v)
|
||||
log.Debug("translateToRedis: uid %d, varData %v", k, v)
|
||||
}
|
||||
for k, v := range data.NewVar {
|
||||
if v == nil {
|
||||
continue
|
||||
}
|
||||
SaveCacheVarData(k, v)
|
||||
log.Debug("translateToRedis: varKey %s, varData %v", k, v)
|
||||
}
|
||||
for k, v := range data.DailyVar {
|
||||
if v == nil {
|
||||
continue
|
||||
}
|
||||
SaveCacheVarData(k, v)
|
||||
log.Debug("translateToRedis: dailyVarKey %s, varData %v", k, v)
|
||||
}
|
||||
data.NewVar = make(map[string]*VarExpireData)
|
||||
data.NewUseVar = make(map[int]map[string]*VarExpireData)
|
||||
}
|
||||
|
||||
@ -139,13 +157,6 @@ func (f *VarMgr) ZeroUpdate() {
|
||||
Four: Card1,
|
||||
Five: Card2,
|
||||
})
|
||||
for k, v := range data.NewVar {
|
||||
if v.T < GoUtil.ZeroTimestamp() {
|
||||
delete(data.NewVar, k)
|
||||
}
|
||||
}
|
||||
// 清空每日变量
|
||||
data.DailyVar = make(map[string]*VarExpireData)
|
||||
f.mDispatr.AfterFunc(time.Duration(GoUtil.NextZeroTimestampDuration())*time.Second, func() {
|
||||
f.ZeroUpdate()
|
||||
})
|
||||
@ -198,10 +209,10 @@ func (f *VarMgr) GetUserVar(uid int, key string) *VarExpireData {
|
||||
}
|
||||
|
||||
func (f *VarMgr) SetVar(key string, value interface{}) {
|
||||
f.getData().NewVar[key] = &VarExpireData{
|
||||
D: value,
|
||||
}
|
||||
SaveCacheVarData(key, f.getData().NewVar[key])
|
||||
data := &VarExpireData{}
|
||||
LoadCacheVarData(key, data)
|
||||
data.D = value
|
||||
SaveCacheVarData(key, data)
|
||||
}
|
||||
|
||||
func (f *VarMgr) getData() *VarData {
|
||||
@ -267,8 +278,7 @@ func SetUserVarDataHandler(m *msg.Msg) (interface{}, error) {
|
||||
varData := make(map[string]*VarExpireData)
|
||||
err := LoadUserVarData(GoUtil.GetVarKey(m.To), &varData)
|
||||
if err != nil {
|
||||
log.Error("SetUserVarDataHandler err : %s, key: %s", err, v.Key)
|
||||
return nil, fmt.Errorf("failed to load user var data: %v", err)
|
||||
log.Debug("SetUserVarDataHandler err : %s, key: %s", err, v.Key)
|
||||
}
|
||||
ved := varData[v.Key]
|
||||
if ved == nil {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user