Browse Source

2023-10-10 检测nats链接状态,每10分钟断开重连

zoie 1 year ago
parent
commit
d6127c54b5
3 changed files with 26 additions and 3 deletions
  1. 2 0
      ColdVerify_local.go
  2. 22 1
      Nats/Nats.go
  3. 2 2
      controllers/TaskData.go

+ 2 - 0
ColdVerify_local.go

@@ -1,6 +1,7 @@
 package main
 
 import (
+	"ColdVerify_local/Nats"
 	_ "ColdVerify_local/Nats"
 	"ColdVerify_local/conf"
 	_ "ColdVerify_local/routers"
@@ -61,6 +62,7 @@ func main() {
 	beego.BConfig.RunMode = "dev"                           //  应用的运行模式
 	beego.BConfig.Listen.HTTPPort = HTTPPort_int            //监听端口  本地:8518  线上:8528
 	beego.BConfig.WebConfig.AutoRender = false
+	go Nats.ReconnectNATS()
 	beego.Run()
 
 }

+ 22 - 1
Nats/Nats.go

@@ -20,7 +20,8 @@ func init() {
 	logs.Println("============Nats init============")
 	var err error
 	// 连接Nats服务器
-	lib.Nats, err = nats.Connect("nats://" + conf.NatsServer_Url)
+	lib.Nats, err = nats.Connect("nats://"+conf.NatsServer_Url, nats.MaxReconnects(10))
+	nats.RetryOnFailedConnect(true)
 	if err != nil {
 		fmt.Println("nats 连接失败!")
 		panic(err)
@@ -33,6 +34,26 @@ func init() {
 	}
 }
 
+// 每10分钟重新连接nats
+func ReconnectNATS() {
+	// 循环监测连接状态并重新连接
+	var err error
+	for {
+		time.Sleep(10 * time.Minute)
+		//time.Sleep(1 * time.Minute)
+
+		if !lib.Nats.IsConnected() {
+			lib.Nats, err = nats.Connect("nats://" + conf.NatsServer_Url)
+			if err != nil {
+				fmt.Println("无法重新连接到 NATS:", err)
+				continue
+			}
+			fmt.Println("成功重新连接到 NATS...")
+		}
+	}
+
+}
+
 type Up_TaskData_Back struct {
 	T_uuid string    `xml:"T_uuid"`
 	Task   Task.Task `xml:"Task_r"`

+ 2 - 2
controllers/TaskData.go

@@ -1093,8 +1093,8 @@ func (c *TaskDataController) CopyFromPosition() {
 			continue
 		}
 		sn, id_str := sn_id[0], sn_id[1]
-		Task.DeleteTaskDataByTimeRange(Task_r.T_task_id, sn, id_str, CopyTime, CopyEndTime)
 		List, _ := Task.Read_TaskData_ById_List_AES(Task_r.T_task_id, sn, id_str, StartTime, EndTime, 0, 9999)
+		Task.DeleteTaskDataByTimeRange(Task_r.T_task_id, sn, id_str, CopyTime, CopyEndTime)
 		ct := copyTime
 		go func(TaskDataList []Task.TaskData_, task_id string, T_saveT int) {
 			for _, taskData := range TaskDataList {
@@ -1661,8 +1661,8 @@ func (c *TaskDataController) CopyFromPositionSN() {
 		return
 	}
 	sn, id_str := sn_id[0], sn_id[1]
-	Task.DeleteTaskDataByTimeRange(Task_r.T_task_id, CopySN, CopyID, CopyTime, CopyEndTime)
 	List, _ := Task.Read_TaskData_ById_List_AES(Task_r.T_task_id, sn, id_str, StartTime, EndTime, 0, 9999)
+	Task.DeleteTaskDataByTimeRange(Task_r.T_task_id, CopySN, CopyID, CopyTime, CopyEndTime)
 	ct := copyTime
 	go func(TaskDataList []Task.TaskData_, task_id string, T_saveT int) {
 		for _, taskData := range TaskDataList {