From 9e75434152f6743052a4097964aa9076c667b52a Mon Sep 17 00:00:00 2001 From: boyce Date: Fri, 22 Mar 2019 13:40:22 +0800 Subject: [PATCH] =?UTF-8?q?service=E7=9A=84=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E4=B8=8E=E8=BF=90=E8=A1=8C=E6=8C=89=E7=85=A7Setup=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- service/servicemanager.go | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/service/servicemanager.go b/service/servicemanager.go index 34f4841..12b03d3 100644 --- a/service/servicemanager.go +++ b/service/servicemanager.go @@ -13,13 +13,15 @@ type IServiceManager interface { } type CServiceManager struct { - genserviceid int - localserviceMap map[string]IService - logger ILogger + genserviceid int + localserviceMap map[string]IService + logger ILogger + orderLocalService []string } func (slf *CServiceManager) Setup(s IService) bool { slf.localserviceMap[s.GetServiceName()] = s + slf.orderLocalService = append(slf.orderLocalService, s.GetServiceName()) return true } @@ -56,8 +58,8 @@ func (slf *CServiceManager) Init(logger ILogger, exit chan bool, pwaitGroup *syn } func (slf *CServiceManager) Start() bool { - - for _, s := range slf.localserviceMap { + for _, sname := range slf.orderLocalService { + s := slf.FindService(sname) 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) @@ -66,7 +68,8 @@ func (slf *CServiceManager) Start() bool { s.(IModule).getBaseModule().OnInit() } - for _, s := range slf.localserviceMap { + for _, sname := range slf.orderLocalService { + s := slf.FindService(sname) go (s.(IModule)).RunModule(s.(IModule)) }