diff --git a/services/cmd/main.go b/services/cmd/main.go index 3bf8481d3..c3ab026a8 100644 --- a/services/cmd/main.go +++ b/services/cmd/main.go @@ -35,6 +35,11 @@ func main() { if config, err := readergmconf(*gmpath); err != nil { log.Error("读取区服配置失败!", log.Field{Key: "err", Value: err}) } else { + var ( + maintes []*core.ServiceSttings = make([]*core.ServiceSttings, 0) + workers []*core.ServiceSttings = make([]*core.ServiceSttings, 0) + gateways []*core.ServiceSttings = make([]*core.ServiceSttings, 0) + ) for i, v := range config.Services { if sseting, err := convertServiceSttings(config, i, v); err != nil { log.Error("转换服务配置异常!", log.Field{Key: "v", Value: v}, log.Field{Key: "err", Value: err}) @@ -44,9 +49,34 @@ func main() { log.Error("写入服务配置失败!", log.Field{Key: "sseting", Value: sseting}, log.Field{Key: "err", Value: err}) return } - startService(sseting) + switch sseting.Type { + case comm.Service_Gateway: //网关服务 + gateways = append(gateways, sseting) + break + case comm.Service_Worker: //业务服务 + workers = append(workers, sseting) + break + case comm.Service_Mainte: //维护服务 + maintes = append(maintes, sseting) + break + default: + err = fmt.Errorf("服务类型异常 stype:%s", sseting.Type) + return + } } } + //优先启动 维护服 + for _, v := range maintes { + startService(v) + } + // 业务服 + for _, v := range workers { + startService(v) + } + // 网关服 + for _, v := range gateways { + startService(v) + } } }