Selaa lähdekoodia

refactor(job): 重构定时任务执行逻辑

- 修改 autowiredTournamentData 方法签名,增加 execId 参数
- 移除定时任务执行成功后的重复更新语句
- 在创建比赛失败时更新定时任务执行状态为失败
- 优化异常处理,确保异常情况下正确更新定时任务执行状态
fugui001 3 kuukautta sitten
vanhempi
commit
e2ba190314

+ 9 - 9
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/job/business/ScheduleTask.java

@@ -88,10 +88,10 @@ public class ScheduleTask {
                     continue;
                 }
                 // ✅ 创建比赛
-                autowiredTournamentData(config.getTemplateId(), triggerTime,config.getId());
+                autowiredTournamentData(exec.getId(),config.getTemplateId(), triggerTime,config.getId());
 
 
-                scheduleExecutionMapper.updateSelective(exec.getId(), "SUCCESS");
+/*                scheduleExecutionMapper.updateSelective(exec.getId(), "SUCCESS");*/
 
             } catch (Exception e) {
                 log.error("创建比赛失败: execId={}", exec.getId(), e);
@@ -140,9 +140,9 @@ public class ScheduleTask {
                     }
 
                     // 创建比赛
-                    autowiredTournamentData(config.getTemplateId(), triggerTime,config.getId());
+                    autowiredTournamentData(exec.getId(),config.getTemplateId(), triggerTime,config.getId());
 
-                    scheduleExecutionMapper.updateSelective(exec.getId(), "SUCCESS");
+                 /*   scheduleExecutionMapper.updateSelective(exec.getId(), "SUCCESS");*/
 
                 } catch (Exception e) {
                     log.error("创建比赛失败: execId={}", exec.getId(), e);
@@ -187,9 +187,7 @@ public class ScheduleTask {
                     }
 
                     // 创建比赛
-                    autowiredTournamentData(config.getTemplateId(), triggerTime,config.getId());
-
-                    scheduleExecutionMapper.updateSelective(exec.getId(), "SUCCESS");
+                    autowiredTournamentData(exec.getId(),config.getTemplateId(), triggerTime,config.getId());
 
                 } catch (Exception e) {
                     log.error("创建比赛失败: execId={}", exec.getId(), e);
@@ -217,7 +215,7 @@ public class ScheduleTask {
      * @param templateId
      * @return
      */
-    public Boolean autowiredTournamentData(Long templateId,LocalDateTime triggerTime,Long configId) {
+    public Boolean autowiredTournamentData(Long execId,Long templateId,LocalDateTime triggerTime,Long configId) {
         try {
                 TournamentsVo tournamentsVo = tournamentsTemplateMapper.selectVoByIdInfoTemplate(templateId);
                 // 模拟构造 TournamentsDto 数据
@@ -285,6 +283,7 @@ public class ScheduleTask {
                 // 调用已有的插入方法
                 if (!iTournamentsService.insertByBo(bo)) {
                     log.error("赛事插入失败");
+                    scheduleExecutionMapper.updateSelective(execId, "FAILED");
                     return false;
                 }
 
@@ -300,10 +299,11 @@ public class ScheduleTask {
             scheduleConfig.setId(configId);
             scheduleConfig.setEnabled(true);
             baseMapper.updateScheduleConfig(scheduleConfig);
-
+            scheduleExecutionMapper.updateSelective(execId, "SUCCESS");
             return true;
         } catch (Exception e) {
             log.error("批量插入赛事过程中发生异常", e);
+            scheduleExecutionMapper.updateSelective(execId, "FAILED");
             return false;
         }
     }