zhangqian
2023-10-09 41a9bf370cff977ff8afe122a7610e07fa6c3b80
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)
}
}