初始化项目
This commit is contained in:
6
trunk/framework/reloadMgr/doc.go
Normal file
6
trunk/framework/reloadMgr/doc.go
Normal file
@@ -0,0 +1,6 @@
|
||||
package reloadMgr
|
||||
|
||||
// 重新加载包,提供重新加载的功能
|
||||
// 使用方法:
|
||||
// 1、先调用RegisterReloadFunc方法,将重新加载时需要调用的方法进行注册。
|
||||
// 2、在需要重新加载时调用Reload()方法
|
||||
39
trunk/framework/reloadMgr/reload.go
Normal file
39
trunk/framework/reloadMgr/reload.go
Normal file
@@ -0,0 +1,39 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user