From 0480d1a3766c10b04eb8325013aabdf7c8c48938 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Wed, 12 Sep 2018 10:24:18 +0300 Subject: [PATCH] Provide TTL from a discovery wrapper to rendezvous client --- discovery/rendezvous.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/discovery/rendezvous.go b/discovery/rendezvous.go index 488e1dc28..5e90c2858 100644 --- a/discovery/rendezvous.go +++ b/discovery/rendezvous.go @@ -101,7 +101,7 @@ func (r *Rendezvous) register(topic string) error { r.mu.RLock() defer r.mu.RUnlock() - err := r.client.Register(ctx, srv, topic, r.record) + err := r.client.Register(ctx, srv, topic, r.record, r.registrationPeriod) if err != nil { log.Error("error registering", "topic", topic, "rendezvous server", srv, "err", err) } @@ -110,7 +110,9 @@ func (r *Rendezvous) register(topic string) error { // Register renews registration in the specified server. func (r *Rendezvous) Register(topic string, stop chan struct{}) error { - ticker := time.NewTicker(r.registrationPeriod) + // sending registration more often than the whole registraton period + // will ensure that it won't be accidentally removed + ticker := time.NewTicker(r.registrationPeriod / 2) defer ticker.Stop() if err := r.register(topic); err == context.Canceled {