diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/router/HandlerRouter.java b/xxl-job-core/src/main/java/com/xxl/job/core/router/HandlerRouter.java index 950572494fb364088d928020a8aac4571d6f271e..4fd62a42d0a2996eb79915f7e507c825e24e8c62 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/router/HandlerRouter.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/router/HandlerRouter.java @@ -40,7 +40,8 @@ public class HandlerRouter { JobThread jobThread = new JobThread(handler); jobThread.start(); logger.info(">>>>>>>>>>> xxl-job regist JobThread success, jobkey:{}, handler:{}", new Object[]{jobkey, handler}); - return HandlerRouter.JobThreadRepository.put(jobkey, jobThread); // putIfAbsent + HandlerRouter.JobThreadRepository.put(jobkey, jobThread); // putIfAbsent | oh my god, map's put method return the old value!!! + return jobThread; } public static JobThread loadJobThread(String jobKey){ return HandlerRouter.JobThreadRepository.get(jobKey); diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/router/action/RunAction.java b/xxl-job-core/src/main/java/com/xxl/job/core/router/action/RunAction.java index 93d5b374f89cf5f01390594b86b9a808412bfd29..cd052db79b8626b89d612508c7d6cb6feead021d 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/router/action/RunAction.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/router/action/RunAction.java @@ -61,11 +61,6 @@ public class RunAction extends IAction { } } - // sometime, cmap.get can not return given value, i do not know why - if (jobThread == null) { - jobThread = HandlerRouter.loadJobThread(jobKey); - } - // push data to queue jobThread.pushTriggerQueue(requestModel); return new ResponseModel(ResponseModel.SUCCESS, null);