From 56307a744dc94f9b1eed3f7513a4be16a130e984 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期二, 17 十月 2023 17:20:25 +0800
Subject: [PATCH] 定时同步任务状态

---
 service/task.go       |    5 +++++
 crontask/cron_task.go |   22 +++++++++++++++++++---
 2 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/crontask/cron_task.go b/crontask/cron_task.go
index 5668ea1..2bdb2c2 100644
--- a/crontask/cron_task.go
+++ b/crontask/cron_task.go
@@ -76,7 +76,7 @@
 	})
 
 	s.Every(60).Seconds().Do(SyncProductionProgress) //鍚屾鐢熶骇鏁版嵁
-	s.Every(60).Seconds().Do(SyncTaskStatus)         //鍚屾浠诲姟鐘舵��
+	s.Every(30).Seconds().Do(SyncTaskStatus)         //鍚屾浠诲姟鐘舵��
 	s.StartAsync()
 	return nil
 }
@@ -110,8 +110,24 @@
 }
 
 func SyncTaskStatus() {
-
-	//todo
+	records, err := service.NewTaskService().GetTaskStatusSync(100)
+	if err != nil {
+		logx.Errorf("SyncTaskStatus get records err:%v", err)
+	}
+	for _, record := range records {
+		msg := &common.MsgTaskStatusUpdate{
+			WorkOrderId:  record.WorkOrderId,
+			ProcedureID:  record.ProcedureID,
+			DeviceId:     record.DeviceId,
+			IsProcessing: record.IsProcessing,
+			IsFinish:     record.IsFinish,
+		}
+		caller := nsq.NewCaller(fmt.Sprintf(constvar.NsqTopicTaskProcedureStatusUpdate, conf.Conf.NsqConf.NodeId), "")
+		err = caller.Send(msg)
+		if err != nil {
+			logx.Errorf("sync task status send msg error:%v", err.Error())
+		}
+	}
 }
 
 func StopTask() {
diff --git a/service/task.go b/service/task.go
index 8129ddf..df68848 100644
--- a/service/task.go
+++ b/service/task.go
@@ -191,3 +191,8 @@
 func (slf TaskService) SaveTaskStatusSync(db *gorm.DB, record *model.TaskStatusSync) (err error) {
 	return model.NewTaskStatusSyncSearch(db).Create(record)
 }
+
+// GetTaskStatusSync 鑾峰彇寰呭悓姝ヤ换鍔′俊鎭�
+func (slf TaskService) GetTaskStatusSync(limit int) ([]*model.TaskStatusSync, error) {
+	return model.NewTaskStatusSyncSearch(nil).SetOrder("id desc").SetPage(1, limit).FindNotTotal()
+}

--
Gitblit v1.8.0