diff --git a/registry/consul/registry.go b/registry/consul/registry.go
index a00ec2518809731a1473ac184e7c4bc39d9a08da..3a4bee2866c7031c3f2f67787afa8f5adafe2292 100644
--- a/registry/consul/registry.go
+++ b/registry/consul/registry.go
@@ -194,7 +194,7 @@ func (r *consulRegistry) IsAvailable() bool {
 func (r *consulRegistry) Destroy() {
 	if r.URL != nil {
 		done := make(chan struct{}, 1)
-		ticker := time.NewTicker(r.timeOut)
+		ticker := time.After(r.timeOut)
 		go func() {
 			defer func() {
 				if e := recover(); e != nil {
@@ -209,9 +209,8 @@ func (r *consulRegistry) Destroy() {
 		select {
 		case <-done:
 			logger.Infof("consulRegistry unregister done")
-		case <-ticker.C:
+		case <-ticker:
 			logger.Errorf("consul unregister timeout")
-			ticker.Stop()
 		}
 	}
 	close(r.done)