Files
origin/service/servicemgr.go
boyce a60ad1cccf 1.支持动态服务发现功能
2.Service中支持对RPC结点连接或断开事件监听
2021-04-29 17:18:13 +08:00

57 lines
953 B
Go

package service
//本地所有的service
var mapServiceName map[string]IService
var setupServiceList []IService
type RegRpcEventFunType func(serviceName string)
var RegRpcEventFun RegRpcEventFunType
func init(){
mapServiceName = map[string]IService{}
setupServiceList = []IService{}
}
func Init(chanCloseSig chan bool) {
closeSig=chanCloseSig
for _,s := range setupServiceList {
err := s.OnInit()
if err != nil {
panic(err)
}
}
}
func Setup(s IService) bool {
_,ok := mapServiceName[s.GetName()]
if ok == true {
return false
}
mapServiceName[s.GetName()] = s
setupServiceList = append(setupServiceList, s)
return true
}
func GetService(serviceName string) IService {
s,ok := mapServiceName[serviceName]
if ok == false {
return nil
}
return s
}
func Start(){
for _,s := range setupServiceList {
s.Start()
}
}
func WaitStop(){
for i := len(setupServiceList) - 1; i >= 0; i-- {
setupServiceList[i].Wait()
}
}