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连接状态并保存在数据库,增加网络检查器

---
 crontask/cron_task.go |   27 ++++++++++++++++++++++++++-
 1 files changed, 26 insertions(+), 1 deletions(-)

diff --git a/crontask/cron_task.go b/crontask/cron_task.go
index 42dc94b..de593c3 100644
--- a/crontask/cron_task.go
+++ b/crontask/cron_task.go
@@ -3,6 +3,7 @@
 import (
 	"apsClient/conf"
 	"apsClient/constvar"
+	"apsClient/model"
 	"apsClient/model/common"
 	"apsClient/nsq"
 	"apsClient/pkg/ecode"
@@ -80,9 +81,11 @@
 	if isMaster {
 		s.Every(60).Seconds().Do(SyncProductionProgress) //鍚屾鐢熶骇鏁版嵁
 		s.Every(30).Seconds().Do(SyncTaskStatus)         //鍚屾浠诲姟鐘舵��
+		s.Every(10).Seconds().Do(CheckNsqConn)           //鏌ヨnsq杩炴帴
+
 	}
 
-	s.Every(10).Seconds().Do(QueryClusterStatus) //鏌ヨ闆嗙兢鑺傜偣鏁伴噺
+	s.Every(20).Seconds().Do(QueryClusterStatus) //鏌ヨ闆嗙兢鑺傜偣鏁伴噺
 	s.Every(30).Seconds().Do(ProblemCheck)       //闂璇婃柇
 
 	s.StartAsync()
@@ -168,3 +171,25 @@
 func ProblemCheck() {
 	problem.Check()
 }
+
+func CheckNsqConn() {
+	var err error
+	var status constvar.SystemStatusValue
+	if nsq.Ping() {
+		status = constvar.SystemStatusValueNormal
+	} else {
+		status = constvar.SystemStatusValueUnNormal
+	}
+	old, err := model.NewSystemStatusSearch().SetKey(constvar.SystemStatusKeyNsq).First()
+	if err != nil {
+		logx.Errorf("get nsq status err:%v", err)
+		return
+	}
+	if old.Value == status {
+		return
+	}
+	err = model.NewSystemStatusSearch().SetKey(constvar.SystemStatusKeyNsq).Updates(map[string]interface{}{"value": status})
+	if err != nil {
+		logx.Errorf("update nsq status err:%v", err)
+	}
+}

--
Gitblit v1.8.0