支持从配置文件及配置目录初始化RPC服务

This commit is contained in:
2022-07-01 17:51:38 +08:00
parent 09e47648bc
commit 54aef081d9
4 changed files with 42 additions and 0 deletions

38
rpc.go
View File

@ -14,6 +14,7 @@ import (
"fmt"
"io"
"net/http"
"path/filepath"
"strings"
"sync"
@ -53,6 +54,43 @@ func InitRPC(serviceTable map[string]*Service, loggerInstance *zap.Logger) error
return nil
}
// InitRPCFromCfgDir 使用RPC配置文件路径初始化RPC
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 17:41 2022/7/1
func InitRPCFromCfgDir(cfgDir string, logger *zap.Logger) error {
serviceTable := make(map[string]*Service)
filepathNames, _ := filepath.Glob(filepath.Join(cfgDir, "*"))
for i := range filepathNames {
var (
serviceInfo Service
err error
)
if err = util.File.ReadJSONContent(cfgDir+string(filepath.Separator)+filepathNames[i], &serviceInfo); nil != err {
return err
}
serviceTable[serviceInfo.Flag] = &serviceInfo
}
return InitRPC(serviceTable, logger)
}
// InitRPCFromCfgFile 从配置文件初始化RPC服务
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 17:42 2022/7/1
func InitRPCFromCfgFile(cfgFile string, logger *zap.Logger) error {
var (
serviceTable map[string]*Service
err error
)
if err = util.File.ReadJSONContent(cfgFile, &serviceTable); nil != err {
return err
}
return InitRPC(serviceTable, logger)
}
type request struct {
logger *zap.Logger
serviceTable map[string]*Service