zhangqian
2023-11-25 efec800478214f3a412f879d2b51c2968515995d
crontask/cron_task.go
@@ -45,8 +45,8 @@
            }
            finishNumber := cast.ToInt64(value)
            if finishNumber != 0 {
               service.PlcCacheSet(addressItem.Channel, constvar.PlcCacheKeyFinishNumber, finishNumber)
               _ = service.NewProgressService().UpdateProgress(addressItem.Channel, cast.ToInt64(finishNumber))
               service.PlcCacheSet(conf.Conf.CurrentDeviceID, addressItem.Channel, constvar.PlcCacheKeyFinishNumber, finishNumber)
               _ = service.NewProgressService().UpdateProgress(conf.Conf.CurrentDeviceID, addressItem.Channel, cast.ToInt64(finishNumber))
            }
            logx.Infof("plc read finish number: %v", finishNumber)
         }
@@ -71,8 +71,7 @@
            }
            totalNumber := cast.ToInt64(value)
            if totalNumber != 0 {
               service.PlcCacheSet(addressItem.Channel, constvar.PlcCacheKeyTotalNumber, totalNumber)
               _ = service.NewProgressService().UpdateProgress(addressItem.Channel, cast.ToInt64(totalNumber))
               service.PlcCacheSet(conf.Conf.CurrentDeviceID, addressItem.Channel, constvar.PlcCacheKeyTotalNumber, totalNumber)
            }
            logx.Infof("plc read total number: %v", totalNumber)
         }
@@ -84,7 +83,7 @@
      s.Every(60).Seconds().Do(SyncProductionProgress) //同步生产数据
      s.Every(30).Seconds().Do(SyncTaskStatus)         //同步任务状态
      s.Every(10).Seconds().Do(CheckNsqConn)           //查询nsq连接
      s.Every(30).Seconds().Do(ReportData)             //上报数据
   }
   s.Every(20).Seconds().Do(QueryClusterStatus) //查询集群节点数量
@@ -127,6 +126,7 @@
      err = caller.Send(msg)
      if err != nil {
         logx.Errorf("sync task status send msg error:%v", err.Error())
         continue
      }
      syncOkIds = append(syncOkIds, record.ID)
   }
@@ -138,12 +138,45 @@
   }
}
func ReportData() {
   records, err := model.NewReportsToCloudSearch(nil).SetOrder("id desc").SetPage(1, 100).FindNotTotal()
   if err != nil {
      logx.Errorf("ReportData get records err:%v", err)
   }
   okIds := make([]uint, 0, len(records))
   for _, record := range records {
      msg := &common.MsgReportData{
         ReportType: record.ReportType,
         Content:    record.Content,
      }
      caller := nsq.NewCaller(fmt.Sprintf(constvar.NsqTopicApsClientReportData, conf.Conf.NsqConf.NodeId), "")
      err = caller.Send(msg)
      if err != nil {
         logx.Errorf("sync task status send msg error:%v", err.Error())
         continue
      }
      okIds = append(okIds, record.ID)
   }
   if len(okIds) > 0 {
      err = model.NewReportsToCloudSearch(nil).SetIDs(okIds).Delete()
      if err != nil {
         logx.Errorf("ReportData delete report ok records error:%v", err)
      }
   }
}
func RestartTask(isMaster bool) error {
   if s != nil {
      s.Stop()
      s.Clear()
   }
   return StartTask(isMaster)
   err := StartTask(isMaster)
   if err != nil {
      logx.Errorf("restart task failed:%v", err)
      return err
   }
   logx.Infof("restart task ok, isMaster:", isMaster)
   return nil
}
// Once 一次性任务