From 7c1dd2e19119edd1ab147a699dfdcd11447fca14 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期四, 02 十一月 2023 21:20:53 +0800
Subject: [PATCH] serf集群master定时查询nsq连接状态并保存在数据库,增加网络检查器

---
 nsq/nsq.go |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/nsq/nsq.go b/nsq/nsq.go
index 68274b2..8034d05 100644
--- a/nsq/nsq.go
+++ b/nsq/nsq.go
@@ -9,6 +9,7 @@
 	"context"
 	"errors"
 	"fmt"
+	"github.com/shirou/gopsutil/net"
 	"sync"
 	"sync/atomic"
 )
@@ -85,10 +86,31 @@
 	})
 }
 
+func (c *consumerManager) ping() bool {
+	connections, err := net.Connections("inet")
+	if err != nil {
+		fmt.Println("Error:", err)
+		return false
+	}
+	for _, conn := range connections {
+		fmt.Println("net.Connections:", conn)
+		ipPort := fmt.Sprintf("%s:%s", conn.Laddr.IP, conn.Laddr.Port)
+		fmt.Println("net.Connections ipPort", ipPort)
+		if ipPort == conf.Conf.NsqConf.NsqdAddr && conn.Status == "ESTABLISHED" {
+			return true
+		}
+	}
+	return false
+}
+
 func Init() error {
 	return defaultConsumerManager.init()
 }
 
+func Ping() bool {
+	return defaultConsumerManager.ping()
+}
+
 func Stop() {
 	defaultConsumerManager.stop()
 	StopProducer()

--
Gitblit v1.8.0