game_sync/rpc/rpcstate.go

30 lines
654 B
Go

package rpc
import (
"sync"
)
type State struct {
RunTimes int64 //执行次数
TotalRuningTime int64 //总执行时间
MaxRuningTime int64 //最长执行时间
TimeoutTimes int64 //执行超时次数 大于30秒的次数
FailTimes int64 //执行失败次数
SuccessTimes int64 //执行成功次数
NoConnTimes int64 //无连接次数
}
var StateMgr = make(map[string]*State)
var StateMgrLock = sync.RWMutex{}
func GetState() map[string]*State {
ret := make(map[string]*State)
StateMgrLock.RLock()
defer StateMgrLock.RUnlock()
for k, v := range StateMgr {
e := *v // 复制一份
ret[k] = &e
}
return ret
}