From e9f6bf26943f3cc974d02a083cdac22af57e8cb4 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期五, 03 十一月 2023 15:46:57 +0800
Subject: [PATCH] 去掉换行
---
nsq/nsq.go | 34 +++++++++++++++++++++++++++++++---
1 files changed, 31 insertions(+), 3 deletions(-)
diff --git a/nsq/nsq.go b/nsq/nsq.go
index 3887253..c447e8b 100644
--- a/nsq/nsq.go
+++ b/nsq/nsq.go
@@ -9,12 +9,15 @@
"context"
"errors"
"fmt"
+ "github.com/shirou/gopsutil/net"
"sync"
+ "sync/atomic"
)
type consumerManager struct {
- ctx context.Context
- clients sync.Map
+ ctx context.Context
+ clients sync.Map
+ initFlag int32
}
var defaultConsumerManager *consumerManager
@@ -27,12 +30,14 @@
if len(conf.Conf.NsqConf.NodeId) <= 0 {
return errors.New("no NodeId")
}
+ if !atomic.CompareAndSwapInt32(&c.initFlag, 0, 1) {
+ return nil
+ }
if err := initProducer(); err != nil {
return err
}
var topics = []string{
constvar.NsqTopicScheduleTask,
- constvar.NsqTopicSendPlcAddress,
constvar.NsqTopicApsProcessParams,
constvar.NsqTopicDeviceUpdate,
constvar.NsqTopicPullDataResponse,
@@ -67,6 +72,9 @@
}
func (c *consumerManager) stop() {
+ if !atomic.CompareAndSwapInt32(&c.initFlag, 1, 0) {
+ return
+ }
c.clients.Range(func(key, value any) bool {
if consumer, ok := value.(*nsqclient.NsqConsumer); ok {
nsqclient.DestroyNsqConsumer(consumer)
@@ -78,10 +86,30 @@
})
}
+func (c *consumerManager) ping() bool {
+ connections, err := net.Connections("inet")
+ if err != nil {
+ fmt.Println("Error:", err)
+ return false
+ }
+ for _, conn := range connections {
+ ipPort := fmt.Sprintf("%s:%d", conn.Raddr.IP, conn.Raddr.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