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