✨ Keep register func can report error
This commit is contained in:
parent
31e73c438e
commit
d371c4fbfa
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user