package main import ( "time" "mongo.games.com/goserver/core/module" "mongo.games.com/game/util/balancequeue" ) var DbSaveInst = &DbSaver{ GroupNumber: 5, } type DbSaver struct { GroupNumber int *balancequeue.BalanceQueue m map[int32]balancequeue.Element } // RegisterDbSaverTask 向队列中添加SaveTaskHandler func (this *DbSaver) RegisterDbSaverTask(i *Player) { if i == nil { return } e := balancequeue.ElementWrapper(i.Time2Save) this.m[i.GetSnId()] = e this.Push(e) } // UnregisterDbSaveTask 从队列中移除SaveTaskHandler func (this *DbSaver) UnregisterDbSaveTask(i *Player) { if i == nil { return } e, ok := this.m[i.GetSnId()] if !ok { return } this.Pop(e) } func (this *DbSaver) ModuleName() string { return "dbsaver" } func (this *DbSaver) Init() { this.BalanceQueue = balancequeue.New(this.GroupNumber) this.m = make(map[int32]balancequeue.Element) } func (this *DbSaver) Shutdown() { module.UnregisteModule(this) } //////////////////////////////////////////////////////////////////// /// Module Implement [end] //////////////////////////////////////////////////////////////////// // 注册模块 func init() { module.RegisteModule(DbSaveInst, time.Second, 0) }