From ad2b0b510e5f84ac0a481d4cea2bc8ed60cfbd71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?DESKTOP-9ERGOBP=5C=E4=BB=BB=E7=BB=B4=E7=82=B3?= Date: Mon, 20 Oct 2025 12:25:30 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BF=AE=E6=94=B9=E3=80=91=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AD=A6=E7=94=9F=E7=AB=AF=E5=80=92=E8=AE=A1?= =?UTF-8?q?=E6=97=B6=E9=97=AA=E7=83=81=E8=A1=A5=E5=85=85=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/autoTools/AutoToolsController.java | 10 ++++------ .../exam/pp/module/judgement/service/TaskManager.java | 8 ++++++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/autoTools/AutoToolsController.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/autoTools/AutoToolsController.java index 2e5c84cd..dae72a38 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/autoTools/AutoToolsController.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/autoTools/AutoToolsController.java @@ -402,6 +402,8 @@ public class AutoToolsController { stringRedisTemplate.opsForValue().set(key, JsonUtils.toJsonString(info)); monitorMapper.updateById(info); } + // 删除对应任务 + taskManager.stopTaskByUserId(userId); return CommonResult.success(true); } @@ -412,13 +414,9 @@ public class AutoToolsController { * @return true */ @GetMapping("/stopExamForAdmin") - public CommonResult stopExamForAdmin(@RequestParam("userId") String userId, @RequestParam("taskId") String taskId, @RequestParam("paperNum") String paperNum) { - String paperId = educationPaperService.selectPaperByPaperNum(paperNum); - // 将userId 拼接 taskId 作为key - // 防止不同试卷ID冲突 - userId += "_" + taskId + "_" + paperId; + public CommonResult stopExamForAdmin(@RequestParam("userId") String userId) { // 删除对应的线程池 - taskManager.stopTask(userId); + taskManager.stopTaskByUserId(userId); return CommonResult.success(true); } diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/service/TaskManager.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/service/TaskManager.java index 241d86d6..57c2c17c 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/service/TaskManager.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/service/TaskManager.java @@ -95,9 +95,13 @@ public class TaskManager { /**通过ID结束任务*/ public void stopTaskByUserId(String userId) { - tasks.keySet().stream() + String taskId = tasks.keySet().stream() .filter(key -> key.startsWith(userId + "_")) - .findFirst().ifPresent(this::stopTask); + .findFirst() + .orElse(null); + if (taskId != null) { + stopTask(taskId); + } }