|
@@ -115,6 +115,9 @@ func HandleTaskRecordFailByTaskRecord(taskType string, indexTaskRecordInfo *mode
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+// 有处理的任务id集合
|
|
|
+var hasHandleTaskIdMap = make(map[int]bool)
|
|
|
+
|
|
|
// HandleTaskRecordProcessingByTaskRecord
|
|
|
// @Description: 任务标记处理中
|
|
|
// @author: Roc
|
|
@@ -142,34 +145,29 @@ func HandleTaskRecordProcessingByTaskRecord(taskType string, indexTaskRecordInfo
|
|
|
|
|
|
// 处理完成后标记任务状态
|
|
|
defer func() {
|
|
|
- obj := models.IndexTaskRecord{}
|
|
|
- // 修改任务状态
|
|
|
- todoCount, tmpErr := obj.GetCountByCondition(fmt.Sprintf(` AND %s = ? AND %s = ? `, models.IndexTaskRecordColumns.IndexTaskID, models.IndexTaskRecordColumns.Status), []interface{}{indexTaskRecordInfo.IndexTaskID, `待处理`})
|
|
|
+ // 如果没有标记处理中的任务ID,那么需要修改任务状态
|
|
|
+ if _, ok := hasHandleTaskIdMap[indexTaskRecordInfo.IndexTaskID]; ok {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ indexTaskObj := models.IndexTask{}
|
|
|
+ indexTaskInfo, tmpErr := indexTaskObj.GetByID(indexTaskRecordInfo.IndexTaskID)
|
|
|
if tmpErr != nil {
|
|
|
- err = fmt.Errorf("查找剩余任务数量失败, err: %s", tmpErr.Error())
|
|
|
+ err = fmt.Errorf("查找任务失败, err: %s", tmpErr.Error())
|
|
|
return
|
|
|
}
|
|
|
- if todoCount <= 0 {
|
|
|
- indexTaskObj := models.IndexTask{}
|
|
|
- indexTaskInfo, tmpErr := indexTaskObj.GetByID(indexTaskRecordInfo.IndexTaskID)
|
|
|
- if tmpErr != nil {
|
|
|
- err = fmt.Errorf("查找任务失败, err: %s", tmpErr.Error())
|
|
|
- return
|
|
|
- }
|
|
|
- tmpUpdateCols := []string{`end_time`, "status", "update_time"}
|
|
|
- indexTaskInfo.EndTime = time.Now()
|
|
|
- indexTaskInfo.Status = `处理中`
|
|
|
- indexTaskInfo.UpdateTime = time.Now()
|
|
|
|
|
|
- if indexTaskInfo.StartTime.IsZero() {
|
|
|
- indexTaskInfo.StartTime = time.Now()
|
|
|
- tmpUpdateCols = append(tmpUpdateCols, "start_time")
|
|
|
- }
|
|
|
+ tmpUpdateCols := []string{`end_time`, "status", "update_time"}
|
|
|
+ indexTaskInfo.Status = `处理中`
|
|
|
+ indexTaskInfo.UpdateTime = time.Now()
|
|
|
+ if indexTaskInfo.StartTime.IsZero() {
|
|
|
+ indexTaskInfo.StartTime = time.Now()
|
|
|
+ tmpUpdateCols = append(tmpUpdateCols, "start_time")
|
|
|
+ }
|
|
|
|
|
|
- tmpErr = indexTaskInfo.Update(tmpUpdateCols)
|
|
|
- if tmpErr != nil {
|
|
|
- utils.FileLog.Error("标记任务状态失败, err: %s", tmpErr.Error())
|
|
|
- }
|
|
|
+ tmpErr = indexTaskInfo.Update(tmpUpdateCols)
|
|
|
+ if tmpErr != nil {
|
|
|
+ utils.FileLog.Error("标记任务状态失败, err: %s", tmpErr.Error())
|
|
|
}
|
|
|
|
|
|
return
|