goProject/trunk/framework/reloadMgr/reload.go

40 lines
965 B
Go
Raw Normal View History

2025-01-06 16:01:02 +08:00
package reloadMgr
import (
"fmt"
"goutil/logUtil"
)
var (
reloadFuncMap = make(map[string]func() error)
)
// RegisterReloadFunc ...注册Reload方法
// funcName:方法名称
// reloadFuncreload方法
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
}