diff --git a/cluster/cluster.go b/cluster/cluster.go index 0852c36..c9e1603 100644 --- a/cluster/cluster.go +++ b/cluster/cluster.go @@ -360,6 +360,9 @@ func (slf *CCluster) Go(bCast bool, NodeServiceMethod string, args interface{}, for _, nodeid := range nodeidList { if nodeid == GetNodeId() { iService := service.InstanceServiceMgr().FindService(serviceName) + if iService == nil { + return fmt.Errorf("CCluster.Go(%s) cannot find service %s", NodeServiceMethod, serviceName) + } if iService.IsInit() == false { service.GetLogger().Printf(sysmodule.LEVER_WARN, "CCluster.Call(%s): NodeId %d is not init.", NodeServiceMethod, nodeid) return fmt.Errorf("CCluster.Call(%s): NodeId %d is not init.", NodeServiceMethod, nodeid) diff --git a/originnode/node.go b/originnode/node.go index 7c41226..f17960a 100644 --- a/originnode/node.go +++ b/originnode/node.go @@ -31,7 +31,16 @@ type COriginNode struct { debugListenAddress string } +var initservicelist []service.IService + +func InitService(iservice service.IService) { + initservicelist = append(initservicelist, iservice) +} + func (s *COriginNode) Init() { + + s.SetupService(initservicelist...) + //初始化全局模块 logger := service.InstanceServiceMgr().FindService("syslog").(service.ILogger) ret := service.InstanceServiceMgr().Init(logger, s.exitChan, s.waitGroup)