From 2ea23e2364f742f528fb8b97657212c174d1bbd7 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期六, 21 十月 2023 14:06:59 +0800 Subject: [PATCH] 增加切换serf状态接口(调试用) --- main.go | 36 ++++++++++++++++++++++++++---------- 1 files changed, 26 insertions(+), 10 deletions(-) diff --git a/main.go b/main.go index 8c631f7..7acd081 100644 --- a/main.go +++ b/main.go @@ -11,6 +11,7 @@ "apsClient/serf" "apsClient/service/plc_address" "fmt" + "log" "net/http" "time" ) @@ -30,6 +31,7 @@ // 鍚姩鏁版嵁鍚屾 var serfStartChan = make(chan bool) + // 闇�瑕佸悓姝ョ殑琛� var syncTables = []string{ "procedures", @@ -37,24 +39,34 @@ "production_progress", "work_order", "task_status_sync", + "device", + "device_plc", } agent := serf.InitAgent("apsClient", syncTables, sqlitex.GetDB()) agent.RegisterClusterEvent(serfClusterEvent) + go agent.Serve(serfStartChan) <-serfStartChan + //if !<-serfStartChan { + // logx.Errorf("serf Init err, exit") + // return + //} // 鍒ゆ柇褰撳墠闆嗙兢鐘舵�� + logx.Infof("current agent.ClusterStatus:%v", agent.ClusterStatus) + log.Println("current agent.ClusterStatus:", agent.ClusterStatus) if agent.ClusterStatus != "slave" { if err := nsq.Init(); err != nil { 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 +82,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