| | |
| | | "apsClient/serf" |
| | | "apsClient/service/plc_address" |
| | | "fmt" |
| | | "log" |
| | | "net/http" |
| | | "time" |
| | | ) |
| | |
| | | |
| | | // 启动数据同步 |
| | | var serfStartChan = make(chan bool) |
| | | |
| | | // 需要同步的表 |
| | | var syncTables = []string{ |
| | | "procedures", |
| | |
| | | "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) |