diff --git a/lego/sys/rpcx/rpcx.go b/lego/sys/rpcx/rpcx.go index 670977a69..9efe81287 100644 --- a/lego/sys/rpcx/rpcx.go +++ b/lego/sys/rpcx/rpcx.go @@ -69,7 +69,7 @@ func (this *RPCX) UnregisterAll() (err error) { func (this *RPCX) Call(ctx context.Context, servicePath string, serviceMethod string, args interface{}, reply interface{}) (err error) { //先排查下 服务端是否存在连接对象 不存在 在使用客户端对象连接 err = this.service.Call(ctx, servicePath, serviceMethod, args, reply) - if strings.Contains(err.Error(), "on found") { + if err != nil && strings.Contains(err.Error(), "on found") { return this.client.Call(ctx, servicePath, serviceMethod, args, reply) } return @@ -78,7 +78,7 @@ func (this *RPCX) Call(ctx context.Context, servicePath string, serviceMethod st //广播调用 func (this *RPCX) Broadcast(ctx context.Context, servicePath string, serviceMethod string, args interface{}, reply interface{}) (err error) { err = this.service.Broadcast(ctx, servicePath, serviceMethod, args, reply) - if strings.Contains(err.Error(), "on found") { + if err != nil && strings.Contains(err.Error(), "on found") { return this.client.Broadcast(ctx, servicePath, serviceMethod, args, reply) } return @@ -87,7 +87,7 @@ func (this *RPCX) Broadcast(ctx context.Context, servicePath string, serviceMeth //异步调用 func (this *RPCX) Go(ctx context.Context, servicePath string, serviceMethod string, args interface{}, reply interface{}, done chan *client.Call) (call *client.Call, err error) { call, err = this.service.Go(ctx, servicePath, serviceMethod, args, reply, done) - if strings.Contains(err.Error(), "on found") { + if err != nil && strings.Contains(err.Error(), "on found") { return this.client.Go(ctx, servicePath, serviceMethod, args, reply, done) } return @@ -96,7 +96,7 @@ func (this *RPCX) Go(ctx context.Context, servicePath string, serviceMethod stri //跨服同步调用 func (this *RPCX) AcrossClusterCall(ctx context.Context, clusterTag string, servicePath string, serviceMethod string, args interface{}, reply interface{}) (err error) { err = this.service.AcrossClusterCall(ctx, clusterTag, servicePath, serviceMethod, args, reply) - if strings.Contains(err.Error(), "on found") { + if err != nil && strings.Contains(err.Error(), "on found") { return this.client.AcrossClusterCall(ctx, clusterTag, servicePath, serviceMethod, args, reply) } return @@ -105,7 +105,7 @@ func (this *RPCX) AcrossClusterCall(ctx context.Context, clusterTag string, serv //跨集群 广播 func (this *RPCX) AcrossClusterBroadcast(ctx context.Context, clusterTag string, servicePath string, serviceMethod string, args interface{}, reply interface{}) (err error) { err = this.service.AcrossClusterBroadcast(ctx, clusterTag, servicePath, serviceMethod, args, reply) - if strings.Contains(err.Error(), "on found") { + if err != nil && strings.Contains(err.Error(), "on found") { return this.client.AcrossClusterBroadcast(ctx, clusterTag, servicePath, serviceMethod, args, reply) } return @@ -114,7 +114,7 @@ func (this *RPCX) AcrossClusterBroadcast(ctx context.Context, clusterTag string, //跨服异步调用 func (this *RPCX) AcrossClusterGo(ctx context.Context, clusterTag string, servicePath string, serviceMethod string, args interface{}, reply interface{}, done chan *client.Call) (call *client.Call, err error) { call, err = this.service.AcrossClusterGo(ctx, clusterTag, servicePath, serviceMethod, args, reply, done) - if strings.Contains(err.Error(), "on found") { + if err != nil && strings.Contains(err.Error(), "on found") { return this.client.AcrossClusterGo(ctx, clusterTag, servicePath, serviceMethod, args, reply, done) } return @@ -124,7 +124,7 @@ func (this *RPCX) AcrossClusterGo(ctx context.Context, clusterTag string, servic func (this *RPCX) ClusterBroadcast(ctx context.Context, servicePath string, serviceMethod string, args interface{}, reply interface{}) (err error) { err = this.client.ClusterBroadcast(ctx, servicePath, serviceMethod, args, reply) - if strings.Contains(err.Error(), "on found") { + if err != nil && strings.Contains(err.Error(), "on found") { return this.client.ClusterBroadcast(ctx, servicePath, serviceMethod, args, reply) } return