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 | 28 ++++++++++++++++++++-------- 1 files changed, 20 insertions(+), 8 deletions(-) diff --git a/main.go b/main.go index 569d9c6..74d4c67 100644 --- a/main.go +++ b/main.go @@ -25,11 +25,6 @@ return } - if err := crontask.InitTask(); err != nil { - logx.Errorf("crontab task Init err:%v", err) - return - } - //鍔犺浇plc鍐欏叆鍦板潃 plc_address.LoadAddressFromFile() @@ -41,6 +36,7 @@ "process_model", "production_progress", "work_order", + "task_status_sync", } agent := serf.InitAgent("apsClient", syncTables, sqlitex.GetDB()) @@ -54,6 +50,12 @@ logx.Errorf("nsq 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...") @@ -69,13 +71,23 @@ 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(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() + nsq.Stop() //鍏抽棴nsq + crontask.Once(false) + if err := crontask.RestartTask(false); err != nil { //浠ラ潪master鏂瑰紡閲嶅惎task + logx.Errorf("crontab task Init err:%v", err) + return + } } - fmt.Println("clusterEvent:", stat) + logx.Infof("serf cluster event: %v", stat) } -- Gitblit v1.8.0