From 41a9bf370cff977ff8afe122a7610e07fa6c3b80 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期一, 09 十月 2023 17:02:16 +0800 Subject: [PATCH] 加入serf集群 --- main.go | 51 +++++++++++++++------------------------------------ 1 files changed, 15 insertions(+), 36 deletions(-) diff --git a/main.go b/main.go index 00d2599..569d9c6 100644 --- a/main.go +++ b/main.go @@ -12,9 +12,6 @@ "apsClient/service/plc_address" "fmt" "net/http" - "os" - "os/signal" - "syscall" "time" ) @@ -28,22 +25,13 @@ return } - if err := nsq.Init(); err != nil { - logx.Errorf("nsq Init err:%v", err) - return - } - if err := crontask.InitTask(); err != nil { logx.Errorf("crontab task Init err:%v", err) return } + //鍔犺浇plc鍐欏叆鍦板潃 plc_address.LoadAddressFromFile() - - ////鎻愬墠鍔犺浇浠诲姟 - //service.NewTaskService().GetTask() - - //go shutdown() // 鍚姩鏁版嵁鍚屾 var serfStartChan = make(chan bool) @@ -58,11 +46,15 @@ agent := serf.InitAgent("apsClient", syncTables, sqlitex.GetDB()) agent.RegisterClusterEvent(serfClusterEvent) go agent.Serve(serfStartChan) - <-serfStartChan // 鍒ゆ柇褰撳墠闆嗙兢鐘舵�� - //agent.ClusterStatus == "master" + if agent.ClusterStatus != "slave" { + if err := nsq.Init(); err != nil { + logx.Errorf("nsq Init err:%v", err) + return + } + } logx.Infof("apsClient start serve...") server := &http.Server{ @@ -74,29 +66,16 @@ logx.Error(server.ListenAndServe().Error()) } -func shutdown() { - quit := make(chan os.Signal, 1) - signal.Notify(quit, syscall.SIGKILL, syscall.SIGQUIT, syscall.SIGINT, syscall.SIGTERM) - <-quit - - logx.Infof("apsClient exited...") - os.Exit(0) -} - func serfClusterEvent(stat int) { switch stat { - - case serf.EventCreateCluster: - // 鍒涘缓闆嗙兢 - case serf.EventJoinCluster: - // 鍔犲叆闆嗙兢 - case serf.EventLeaveCluster: - // 閫�鍑洪泦缇� - case serf.EventSlave2Master: - // 鍒囨崲涓轰富鑺傜偣 - case serf.EventMaster2Slave: - // 鍒囨崲涓哄瓙鑺傜偣 + case serf.EventCreateCluster, serf.EventSlave2Master, serf.EventLeaveCluster: + if err := nsq.Init(); err != nil { + logx.Errorf("nsq Init err:%v", err) + return + } + case serf.EventJoinCluster, serf.EventMaster2Slave: + nsq.Stop() } fmt.Println("clusterEvent:", stat) -} \ No newline at end of file +} -- Gitblit v1.8.0