From f75b6f9ee6b2c542d52b4a11113bd281b421c4c0 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期二, 17 十月 2023 19:34:30 +0800
Subject: [PATCH] 定时任务分master模式和非master模式

---
 main.go |   25 +++++++++++++++----------
 1 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/main.go b/main.go
index 8c631f7..74d4c67 100644
--- a/main.go
+++ b/main.go
@@ -50,11 +50,12 @@
 			logx.Errorf("nsq Init err:%v", err)
 			return
 		}
-		crontask.Once()
-		if err := crontask.StartTask(); err != nil {
-			logx.Errorf("crontab task Init err:%v", err)
-			return
-		}
+
+	}
+	crontask.Once(agent.ClusterStatus != "slave")
+	if err := crontask.StartTask(agent.ClusterStatus != "slave"); err != nil {
+		logx.Errorf("crontab task Init err:%v", err)
+		return
 	}
 
 	logx.Infof("apsClient start serve...")
@@ -70,18 +71,22 @@
 func serfClusterEvent(stat int) {
 	switch stat {
 	case serf.EventCreateCluster, serf.EventSlave2Master, serf.EventLeaveCluster:
-		if err := nsq.Init(); err != nil {
+		if err := nsq.Init(); err != nil { //寮�鍚痭sq
 			logx.Errorf("nsq Init err:%v", err)
 			return
 		}
-		crontask.Once()
-		if err := crontask.StartTask(); err != nil {
+		crontask.Once(true)
+		if err := crontask.RestartTask(true); err != nil { //浠aster鏂瑰紡閲嶅惎task
 			logx.Errorf("crontab task Init err:%v", err)
 			return
 		}
 	case serf.EventJoinCluster, serf.EventMaster2Slave:
-		nsq.Stop()
-		crontask.StopTask()
+		nsq.Stop() //鍏抽棴nsq
+		crontask.Once(false)
+		if err := crontask.RestartTask(false); err != nil { //浠ラ潪master鏂瑰紡閲嶅惎task
+			logx.Errorf("crontab task Init err:%v", err)
+			return
+		}
 	}
 
 	logx.Infof("serf cluster event: %v", stat)

--
Gitblit v1.8.0