Browse Source

fix:进门数据同步时间调整,每个小时同步一次数据,0点和19点不同步数据,后面两个时间点同步最近俩小时的数据

Roc 2 years ago
parent
commit
7327dbdaeb
2 changed files with 15 additions and 6 deletions
  1. 14 5
      services/comein.go
  2. 1 1
      services/task.go

+ 14 - 5
services/comein.go

@@ -23,14 +23,23 @@ func SyncComeinMeeting(cont context.Context) (err error) {
 			go alarm_msg.SendAlarmMsg("同步进门会议参会人员数据失败:"+strings.Join(errMsgList, "/n"), 3)
 		}
 	}()
-	startTimeInt := time.Now().Add(-3700*time.Second).Unix() * 1000 //开始时间
-	endTimeInt := time.Now().Unix() * 1000                          //结束时间
 
-	//每天的第一次同步,那么拉取数据的开始时间 需要 往前面推10个小时(避免因为晚上有客户看回放而把用户遗漏了)
-	if time.Now().Hour() == 7 {
-		startTimeInt = time.Now().Add(-60*60*10*time.Second).Unix() * 1000
+	nowHour := time.Now().Hour()
+	//因为 0点 和 19点 是在更新指标,就不同步参会人数了
+	if nowHour == 0 || nowHour == 19 {
+		return
+	}
+
+	//默认往前面推 1 小时
+	beforeHour := time.Duration(1)
+	//因为 0点 和 19点 是在更新指标,所以后面的两个时间点同步数据时,需要往前面2小时往后拉取
+	if nowHour == 1 || nowHour == 20 {
+		beforeHour = time.Duration(2) //往前面推 2 小时
 	}
 
+	startTimeInt := time.Now().Add(-3600*beforeHour*time.Second-600).Unix() * 1000 //开始时间
+	endTimeInt := time.Now().Unix() * 1000                                         //结束时间
+
 	roadshowData, err := comein.GetRoadshowDataList(startTimeInt, endTimeInt)
 	if err != nil {
 		errMsgList = append(errMsgList, fmt.Sprintf("获取进门路演到会信息失败,%s,err:%s", time.Now().Format(utils.FormatDate), err.Error()))

+ 1 - 1
services/task.go

@@ -106,7 +106,7 @@ func Task() {
 	task.AddTask("setPublicMeetingUnionCode", setPublicMeetingUnionCode)
 
 	//同步进门会议参会人员数据
-	syncComeinMeeting := task.NewTask("SyncComeinMeeting", "0 50 07-23/1 * * * ", SyncComeinMeeting)
+	syncComeinMeeting := task.NewTask("SyncComeinMeeting", "0 1 */1 * * * ", SyncComeinMeeting)
 	task.AddTask("SyncComeinMeeting", syncComeinMeeting)
 
 	task.StartTask()