支持单点与批量载入配置文件

This commit is contained in:
白茶清欢 2022-06-15 16:47:12 +08:00
parent efdbb35412
commit 5497849900

View File

@ -115,7 +115,7 @@ type OwnClient struct {
// Author : go_developer@163.com<白茶清欢> // Author : go_developer@163.com<白茶清欢>
// //
// Date : 14:31 2022/6/15 // Date : 14:31 2022/6/15
func (c *OwnClient) loadConfig(cfgPath string) (*FullConfig, error) { func (c *OwnClient) loadConfig(cfgPath string) error {
var ( var (
err error err error
cfg FullConfig cfg FullConfig
@ -123,12 +123,12 @@ func (c *OwnClient) loadConfig(cfgPath string) (*FullConfig, error) {
filePathArr := strings.Split(cfgPath, string(filepath.Separator)) filePathArr := strings.Split(cfgPath, string(filepath.Separator))
if len(filePathArr) == 0 { if len(filePathArr) == 0 {
return nil, CfgFilePathError() return CfgFilePathError()
} }
fileName := strings.ToLower(filePathArr[len(filePathArr)-1]) fileName := strings.ToLower(filePathArr[len(filePathArr)-1])
fileArr := strings.Split(fileName, ".") fileArr := strings.Split(fileName, ".")
if len(filePathArr) < 2 { if len(filePathArr) < 2 {
return nil, CfgFileFormatErr("未知") return CfgFileFormatErr("未知")
} }
flag := strings.Trim( flag := strings.Trim(
strings.Trim( strings.Trim(
@ -137,22 +137,39 @@ func (c *OwnClient) loadConfig(cfgPath string) (*FullConfig, error) {
switch strings.ToLower(fileArr[len(fileArr)-1]) { switch strings.ToLower(fileArr[len(fileArr)-1]) {
case "json": case "json":
if err = util.File.ReadJSONContent(cfgPath, &cfg); nil != err { if err = util.File.ReadJSONContent(cfgPath, &cfg); nil != err {
return nil, err return err
} }
flag = strings.Join(fileArr[0:len(fileArr)-1], ".") flag = strings.Join(fileArr[0:len(fileArr)-1], ".")
case "yml": case "yml":
fallthrough fallthrough
case "yaml": case "yaml":
if err = util.File.ReadYmlContent(cfgPath, &cfg); nil != err { if err = util.File.ReadYmlContent(cfgPath, &cfg); nil != err {
return nil, err return err
} }
flag = strings.Join(fileArr[0:len(fileArr)-1], ".") flag = strings.Join(fileArr[0:len(fileArr)-1], ".")
default: default:
return nil, CfgFileFormatErr(fileArr[len(fileArr)-1]) return CfgFileFormatErr(fileArr[len(fileArr)-1])
} }
c.lock.Lock()
c.confTable[flag] = &cfg c.confTable[flag] = &cfg
return &cfg, nil c.lock.Unlock()
return nil
}
// batchLoadConfig 批量载入配置
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 16:44 2022/6/15
func (c *OwnClient) batchLoadConfig(cfgDir string) error {
filepathNames, _ := filepath.Glob(filepath.Join(cfgDir, "*"))
for i := range filepathNames {
if err := c.loadConfig(filepathNames[i]); nil != err {
return err
}
}
return nil
} }
// init 初始化redis连接 // init 初始化redis连接