From 0d28940ef8763e1681697a79dfce45d4d3315962 Mon Sep 17 00:00:00 2001 From: boyce Date: Fri, 22 Mar 2019 13:23:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A8=A1=E5=9D=97=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- service/Module.go | 16 +++++++++++----- service/servicemanager.go | 12 +++++++++++- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/service/Module.go b/service/Module.go index 8e3a226..f87dda7 100644 --- a/service/Module.go +++ b/service/Module.go @@ -209,11 +209,19 @@ func (slf *BaseModule) AddModule(module IModule) uint32 { slf.mapModule[module.GetModuleId()] = module //运行模块 + err := module.OnInit() + if err != nil { + GetLogger().Printf(LEVER_ERROR, "Init module %T id is %d is fail,reason:%v...", module, module.GetModuleId(), err) + os.Exit(-1) + } + module.getBaseModule().OnInit() + go module.RunModule(module) return module.GetModuleId() } func (slf *BaseModule) OnInit() error { + slf.bInit = true return nil } @@ -264,14 +272,12 @@ func (slf *BaseModule) IsInit() bool { } func (slf *BaseModule) RunModule(module IModule) { - err := module.OnInit() + /*err := module.OnInit() if err != nil { GetLogger().Printf(LEVER_ERROR, "Start module %T id is %d is fail,reason:%v...", module, module.GetModuleId(), err) os.Exit(-1) - } - GetLogger().Printf(LEVER_INFO, "Start module %T ...", module) - - slf.bInit = true + }*/ + GetLogger().Printf(LEVER_INFO, "Start Run module %T ...", module) //运行所有子模块 timer := util.Timer{} diff --git a/service/servicemanager.go b/service/servicemanager.go index 35085c1..34f4841 100644 --- a/service/servicemanager.go +++ b/service/servicemanager.go @@ -1,8 +1,8 @@ package service import ( + "os" "sync" - ) type IServiceManager interface { @@ -56,6 +56,16 @@ func (slf *CServiceManager) Init(logger ILogger, exit chan bool, pwaitGroup *syn } func (slf *CServiceManager) Start() bool { + + for _, s := range slf.localserviceMap { + err := s.(IModule).OnInit() + if err != nil { + GetLogger().Printf(LEVER_ERROR, "Init module %T id is %d is fail,reason:%v...", s.(IModule), s.(IModule).GetModuleId(), err) + os.Exit(-1) + } + s.(IModule).getBaseModule().OnInit() + } + for _, s := range slf.localserviceMap { go (s.(IModule)).RunModule(s.(IModule)) }