package reloadMgr import ( "fmt" "goutil/logUtil" ) var ( reloadFuncMap = make(map[string]func() error) ) // RegisterReloadFunc ...注册Reload方法 // funcName:方法名称 // reloadFunc:reload方法 func RegisterReloadFunc(funcName string, reloadFunc func() error) { if _, exists := reloadFuncMap[funcName]; exists { panic(fmt.Sprintf("%s已经存在,请重新取名", funcName)) } reloadFuncMap[funcName] = reloadFunc logUtil.InfoLog(fmt.Sprintf("RegisterReloadFunc funcName:%s,当前共有%d个注册", funcName, len(reloadFuncMap))) } // Reload ...重新加载 // 返回值: // 错误列表 func Reload() (errList []error) { for funcName, reloadFunc := range reloadFuncMap { if err := reloadFunc(); err == nil { logUtil.InfoLog(fmt.Sprintf("Call ReloadFunc:%s Success.", funcName)) } else { logUtil.ErrorLog(fmt.Sprintf("Call ReloadFunc:%s Fail, Error:%s", funcName, err)) errList = append(errList, err) } } return }