fix
zhangqian
2023-12-01 8324f872ef3a4d0c978a9b1d062800c6a1701c12
nsq/nsq.go
@@ -9,6 +9,7 @@
   "context"
   "errors"
   "fmt"
   "github.com/shirou/gopsutil/net"
   "sync"
   "sync/atomic"
)
@@ -37,7 +38,6 @@
   }
   var topics = []string{
      constvar.NsqTopicScheduleTask,
      constvar.NsqTopicSendPlcAddress,
      constvar.NsqTopicApsProcessParams,
      constvar.NsqTopicDeviceUpdate,
      constvar.NsqTopicPullDataResponse,
@@ -72,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)
@@ -83,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()