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 }