✨ Keep register func can report error
This commit is contained in:
		| @@ -43,15 +43,17 @@ func (v *HyperConn) RegisterService() error { | ||||
| 	return err | ||||
| } | ||||
|  | ||||
| func (v *HyperConn) KeepRegisterService() { | ||||
| 	_ = v.RegisterService() | ||||
| func (v *HyperConn) KeepRegisterService() error { | ||||
| 	err := v.RegisterService() | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	for { | ||||
| 		time.Sleep(5 * time.Second) | ||||
| 		client := health.NewHealthClient(v.dealerConn) | ||||
| 		if _, err := client.Check(context.Background(), &health.HealthCheckRequest{}); err != nil { | ||||
| 			v.KeepRegisterService() | ||||
| 			return | ||||
| 			return v.KeepRegisterService() | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|   | ||||
| @@ -1,15 +0,0 @@ | ||||
| package gap | ||||
|  | ||||
| import ( | ||||
| 	"git.solsynth.dev/hydrogen/dealer/pkg/hyper" | ||||
| 	"git.solsynth.dev/hydrogen/dealer/pkg/proto" | ||||
| 	"github.com/spf13/viper" | ||||
| ) | ||||
|  | ||||
| var H *hyper.HyperConn | ||||
|  | ||||
| func NewHyperClient(info *proto.ServiceInfo) (err error) { | ||||
| 	H, err = hyper.NewHyperConn(viper.GetString("dealer.addr"), info) | ||||
| 	H.KeepRegisterService() | ||||
| 	return | ||||
| } | ||||
| @@ -5,6 +5,7 @@ import ( | ||||
| 	"fmt" | ||||
| 	"git.solsynth.dev/hydrogen/dealer/pkg/internal/directory" | ||||
| 	"git.solsynth.dev/hydrogen/dealer/pkg/proto" | ||||
| 	"github.com/rs/zerolog/log" | ||||
| 	"github.com/samber/lo" | ||||
| ) | ||||
|  | ||||
| @@ -57,6 +58,7 @@ func (v *Server) AddService(ctx context.Context, info *proto.ServiceInfo) (*prot | ||||
| 		HttpAddr: info.HttpAddr, | ||||
| 	} | ||||
| 	directory.AddServiceInstance(in) | ||||
| 	log.Info().Str("id", info.GetId()).Str("label", info.GetLabel()).Msg("New service added.") | ||||
| 	return &proto.AddServiceResponse{ | ||||
| 		IsSuccess: true, | ||||
| 	}, nil | ||||
| @@ -64,6 +66,7 @@ func (v *Server) AddService(ctx context.Context, info *proto.ServiceInfo) (*prot | ||||
|  | ||||
| func (v *Server) RemoveService(ctx context.Context, request *proto.RemoveServiceRequest) (*proto.RemoveServiceResponse, error) { | ||||
| 	directory.RemoveServiceInstance(request.GetId()) | ||||
| 	log.Info().Str("id", request.GetId()).Msg("A service removed.") | ||||
| 	return &proto.RemoveServiceResponse{ | ||||
| 		IsSuccess: true, | ||||
| 	}, nil | ||||
|   | ||||
		Reference in New Issue
	
	Block a user