Keep register func can report error

This commit is contained in:
LittleSheep 2024-07-14 21:56:16 +08:00
parent 31e73c438e
commit d371c4fbfa
3 changed files with 9 additions and 19 deletions

View File

@ -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()
}
}
}

View File

@ -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
}

View File

@ -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