1
0
mirror of https://github.com/go-micro/go-micro.git synced 2025-09-16 08:36:30 +02:00

Registration Retry / Interval (#1651)

* Change the default ttl to 90 seconds

* add retries to registration

* Add retry to web register
This commit is contained in:
Asim Aslam
2020-05-20 11:49:09 +01:00
committed by GitHub
parent e61edf6280
commit a29676b86a
5 changed files with 76 additions and 19 deletions

View File

@@ -18,6 +18,7 @@ import (
"github.com/micro/go-micro/v2/registry"
maddr "github.com/micro/go-micro/v2/util/addr"
authutil "github.com/micro/go-micro/v2/util/auth"
"github.com/micro/go-micro/v2/util/backoff"
mhttp "github.com/micro/go-micro/v2/util/http"
mnet "github.com/micro/go-micro/v2/util/net"
signalutil "github.com/micro/go-micro/v2/util/signal"
@@ -138,7 +139,24 @@ func (s *service) register() error {
return err
}
return r.Register(s.srv, registry.RegisterTTL(s.opts.RegisterTTL))
var regErr error
// try three times if necessary
for i := 0; i < 3; i++ {
// attempt to register
if err := r.Register(s.srv, registry.RegisterTTL(s.opts.RegisterTTL)); err != nil {
// set the error
regErr = err
// backoff then retry
time.Sleep(backoff.Do(i + 1))
continue
}
// success so nil error
regErr = nil
break
}
return regErr
}
func (s *service) deregister() error {

View File

@@ -31,7 +31,7 @@ var (
DefaultAddress = ":0"
// for registration
DefaultRegisterTTL = time.Minute
DefaultRegisterTTL = time.Second * 90
DefaultRegisterInterval = time.Second * 30
// static directory