File tree Expand file tree Collapse file tree 1 file changed +10
-3
lines changed
Expand file tree Collapse file tree 1 file changed +10
-3
lines changed Original file line number Diff line number Diff line change @@ -23,13 +23,22 @@ type heartbeat struct {
2323func (h * heartbeat ) run () {
2424 slidingTimer := time .NewTimer (h .dc .connectController .GetEurekaHeartBeatPeriod ())
2525 defer slidingTimer .Stop ()
26+ fails := 0
2627 for {
2728 select {
2829 case <- h .stop :
2930 return
3031 case <- slidingTimer .C :
3132 if err := h .dc .eurekaClient ().HeartBeatInstance (h .instance ); err != nil {
3233 log .Error ().Err (err ).Msgf ("%s/%s heart beat error" , h .instance .App , h .instance .InstanceId )
34+ fails ++
35+ } else {
36+ fails = 0
37+ }
38+ if fails >= 5 {
39+ if err := h .dc .eurekaClient ().RegisterInstance (h .instance ); err == nil {
40+ fails = 0
41+ }
3342 }
3443 slidingTimer .Reset (h .dc .connectController .GetEurekaHeartBeatPeriod ())
3544 }
@@ -375,9 +384,7 @@ func (dc *EurekaDiscoveryClient) Deregister(dereg *connector.CatalogDeregistrati
375384
376385func (dc * EurekaDiscoveryClient ) Register (reg * connector.CatalogRegistration ) error {
377386 ins := reg .ToEureka ()
378- cacheIns := * ins
379- cacheIns .UniqueID = nil
380- return dc .connectController .CacheRegisterInstance (ins .InstanceId , cacheIns , func () error {
387+ return dc .connectController .CacheRegisterInstance (ins .InstanceId , * reg , func () error {
381388 err := dc .eurekaClient ().RegisterInstance (ins )
382389 if err == nil {
383390 if dc .connectController .GetEurekaHeartBeatInstance () {
You can’t perform that action at this time.
0 commit comments