浏览代码

fix: close health check tcp connection

he2 5 年之前
父节点
当前提交
af8d4a8c12
共有 1 个文件被更改,包括 10 次插入5 次删除
  1. 10 5
      client/health.go

+ 10 - 5
client/health.go

@@ -2,15 +2,16 @@ package client
 
 import (
 	"container/heap"
+	"net"
+	"net/http"
+	"strings"
+	"time"
+
 	"github.com/cnlh/nps/lib/conn"
 	"github.com/cnlh/nps/lib/file"
 	"github.com/cnlh/nps/lib/sheap"
 	"github.com/cnlh/nps/vender/github.com/astaxie/beego/logs"
 	"github.com/pkg/errors"
-	"net"
-	"net/http"
-	"strings"
-	"time"
 )
 
 var isStart bool
@@ -70,7 +71,11 @@ func check(t *file.Health) {
 	var rs *http.Response
 	for _, v := range arr {
 		if t.HealthCheckType == "tcp" {
-			_, err = net.DialTimeout("tcp", v, time.Duration(t.HealthCheckTimeout)*time.Second);
+			var c net.Conn
+			c, err = net.DialTimeout("tcp", v, time.Duration(t.HealthCheckTimeout)*time.Second)
+			if err == nil {
+				c.Close()
+			}
 		} else {
 			client := &http.Client{}
 			client.Timeout = time.Duration(t.HealthCheckTimeout) * time.Second