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 b6e891b6..013ee6e3 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 @@ -28,6 +28,11 @@ public class TaskManager { /** 开始任务(每秒执行一次) */ public void startTask(StuInTheExam stuInTheExam, StuTheExamInfo stuTheExamInfo, String token, AtomicInteger countdown, AtomicInteger counter) { + // 判断 token 的线程是否存在,存在则不进行任何动作 + if (tasks.containsKey(token)) { + log.info("任务 {} 已存在,未重复启动", token); + return; + } tasks.computeIfAbsent(token, k -> { Runnable task = safe(() -> { int current = counter.incrementAndGet();