mirror of
https://github.com/duanhf2012/origin.git
synced 2026-02-04 06:54:45 +08:00
service的初始化与运行按照Setup优化级
This commit is contained in:
@@ -13,13 +13,15 @@ type IServiceManager interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type CServiceManager struct {
|
type CServiceManager struct {
|
||||||
genserviceid int
|
genserviceid int
|
||||||
localserviceMap map[string]IService
|
localserviceMap map[string]IService
|
||||||
logger ILogger
|
logger ILogger
|
||||||
|
orderLocalService []string
|
||||||
}
|
}
|
||||||
|
|
||||||
func (slf *CServiceManager) Setup(s IService) bool {
|
func (slf *CServiceManager) Setup(s IService) bool {
|
||||||
slf.localserviceMap[s.GetServiceName()] = s
|
slf.localserviceMap[s.GetServiceName()] = s
|
||||||
|
slf.orderLocalService = append(slf.orderLocalService, s.GetServiceName())
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -56,8 +58,8 @@ func (slf *CServiceManager) Init(logger ILogger, exit chan bool, pwaitGroup *syn
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (slf *CServiceManager) Start() bool {
|
func (slf *CServiceManager) Start() bool {
|
||||||
|
for _, sname := range slf.orderLocalService {
|
||||||
for _, s := range slf.localserviceMap {
|
s := slf.FindService(sname)
|
||||||
err := s.(IModule).OnInit()
|
err := s.(IModule).OnInit()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
GetLogger().Printf(LEVER_ERROR, "Init module %T id is %d is fail,reason:%v...", s.(IModule), s.(IModule).GetModuleId(), err)
|
GetLogger().Printf(LEVER_ERROR, "Init module %T id is %d is fail,reason:%v...", s.(IModule), s.(IModule).GetModuleId(), err)
|
||||||
@@ -66,7 +68,8 @@ func (slf *CServiceManager) Start() bool {
|
|||||||
s.(IModule).getBaseModule().OnInit()
|
s.(IModule).getBaseModule().OnInit()
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, s := range slf.localserviceMap {
|
for _, sname := range slf.orderLocalService {
|
||||||
|
s := slf.FindService(sname)
|
||||||
go (s.(IModule)).RunModule(s.(IModule))
|
go (s.(IModule)).RunModule(s.(IModule))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user