diff --git a/store/etcd/etcd.go b/store/etcd/etcd.go index c932ca66..00d875c1 100644 --- a/store/etcd/etcd.go +++ b/store/etcd/etcd.go @@ -40,7 +40,6 @@ type etcdLock struct { } const ( - periodicSync = 5 * time.Minute defaultLockTTL = 20 * time.Second defaultUpdateTime = 5 * time.Second ) @@ -88,13 +87,15 @@ func New(addrs []string, options *store.Config) (store.Store, error) { s.client = etcd.NewKeysAPI(c) // Periodic Cluster Sync - go func() { - for { - if err := c.AutoSync(context.Background(), periodicSync); err != nil { - return + if options != nil && options.SyncPeriod != 0 { + go func() { + for { + if err := c.AutoSync(context.Background(), options.SyncPeriod); err != nil { + return + } } - } - }() + }() + } return s, nil } diff --git a/store/store.go b/store/store.go index 7a4850c0..998bd033 100644 --- a/store/store.go +++ b/store/store.go @@ -44,6 +44,7 @@ type Config struct { ClientTLS *ClientTLSConfig TLS *tls.Config ConnectionTimeout time.Duration + SyncPeriod time.Duration Bucket string PersistConnection bool Username string