From f43d5e76bfa2fe01475e8efe82fd758fc7ab0d02 Mon Sep 17 00:00:00 2001
From: aliiohs <rzy1107@163.com>
Date: Tue, 16 Jul 2019 16:32:20 +0800
Subject: [PATCH] change select time.After to wheel.After

---
 remoting/zookeeper/listener.go | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/remoting/zookeeper/listener.go b/remoting/zookeeper/listener.go
index 5b9e0a8f8..e58f5245d 100644
--- a/remoting/zookeeper/listener.go
+++ b/remoting/zookeeper/listener.go
@@ -18,6 +18,7 @@
 package zookeeper
 
 import (
+	gxtime "github.com/dubbogo/gost/time"
 	"path"
 	"sync"
 	"time"
@@ -33,6 +34,10 @@ import (
 	"github.com/apache/dubbo-go/remoting"
 )
 
+var (
+	wheel = gxtime.NewWheel(gxtime.TimeSecondDuration(3), 12) // wheel longest span is 2 minute
+)
+
 type ZkEventListener struct {
 	client      *ZookeeperClient
 	pathMapLock sync.Mutex
@@ -188,7 +193,7 @@ func (l *ZkEventListener) listenDirEvent(zkPath string, listener remoting.DataLi
 			}
 			l.client.RegisterEvent(zkPath, &event)
 			select {
-			case <-time.After(timeSecondDuration(failTimes * ConnDelay)):
+			case <-wheel.After(timeSecondDuration(failTimes * ConnDelay)):
 				l.client.UnregisterEvent(zkPath, &event)
 				continue
 			case <-l.client.Done():
-- 
GitLab