kobe6258 преди 1 ден
родител
ревизия
d33f8e45bf
променени са 2 файла, в които са добавени 5 реда и са изтрити 2 реда
  1. 2 2
      models/report/report_pdf_task.go
  2. 3 0
      services/report_pdf_service.go

+ 2 - 2
models/report/report_pdf_task.go

@@ -50,12 +50,12 @@ func GetPendingTasks() (list []*ReportPdfTask, err error) {
 
 func FailTask(task *ReportPdfTask) (err error) {
 	task.Status = ReportPdfTaskStatusFailed
-	err = global.DbMap[utils.DbNameReport].Model(task).Select("last_finish_time,status,message").Updates(task).Error
+	err = global.DbMap[utils.DbNameReport].Model(task).Select("last_finish_time,status,message").Updates(&task).Error
 	return
 }
 
 func DoneTask(task *ReportPdfTask) (err error) {
 	task.Status = ReportPdfTaskStatusDone
-	err = global.DbMap[utils.DbNameReport].Model(task).Select("last_finish_time,status").Updates(task).Error
+	err = global.DbMap[utils.DbNameReport].Model(task).Select("last_finish_time,status").Updates(&task).Error
 	return
 }

+ 3 - 0
services/report_pdf_service.go

@@ -112,6 +112,7 @@ func (d *ReportPDFHandler) processTask(task *report.ReportPdfTask) {
 		task.LastFinishTime = time.Now()
 		task.Message = err.Error()
 		_ = report.FailTask(task)
+		TaskPlanMap.Delete(task.ReportId)
 		return
 	}
 	// 模拟调用 HTTP 接口获取 MinIO URL
@@ -121,6 +122,7 @@ func (d *ReportPDFHandler) processTask(task *report.ReportPdfTask) {
 		task.LastFinishTime = time.Now()
 		task.Message = err.Error()
 		_ = report.FailTask(task)
+		TaskPlanMap.Delete(task.ReportId)
 		return
 	}
 	if task.ReportType == 3 {
@@ -256,6 +258,7 @@ func StartGenerateReportPDF() {
 			}
 			// 重置定时器,等待下一次执行
 			reportHandler.TryTimer().Reset(taskInterval)
+			fmt.Println("任务执行完成")
 		}
 	}
 }