diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/glue/GlueFactory.java b/xxl-job-core/src/main/java/com/xxl/job/core/glue/GlueFactory.java index 278ec6c..922daf9 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/glue/GlueFactory.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/glue/GlueFactory.java @@ -43,7 +43,10 @@ public void setGlueLoader(GlueLoader glueLoader) { this.glueLoader = glueLoader; } - + public static boolean isActive() { + return GlueFactory.glueFactory.glueLoader!=null; + } + // ----------------------------- spring support ----------------------------- private static ApplicationContext applicationContext; private static GlueFactory glueFactory; @@ -122,7 +125,7 @@ } // // load instance, singleton - public static String generateInstanceCacheKey(String job_group, String job_name){ + private static String generateInstanceCacheKey(String job_group, String job_name){ return job_group.concat("_").concat(job_name).concat("_instance"); } public IJobHandler loadInstance(String job_group, String job_name) throws Exception{ diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/glue/GlueFactory.java b/xxl-job-core/src/main/java/com/xxl/job/core/glue/GlueFactory.java index 278ec6c..922daf9 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/glue/GlueFactory.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/glue/GlueFactory.java @@ -43,7 +43,10 @@ public void setGlueLoader(GlueLoader glueLoader) { this.glueLoader = glueLoader; } - + public static boolean isActive() { + return GlueFactory.glueFactory.glueLoader!=null; + } + // ----------------------------- spring support ----------------------------- private static ApplicationContext applicationContext; private static GlueFactory glueFactory; @@ -122,7 +125,7 @@ } // // load instance, singleton - public static String generateInstanceCacheKey(String job_group, String job_name){ + private static String generateInstanceCacheKey(String job_group, String job_name){ return job_group.concat("_").concat(job_name).concat("_instance"); } public IJobHandler loadInstance(String job_group, String job_name) throws Exception{ 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 cd052db..d1c44e5 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 @@ -1,5 +1,6 @@ package com.xxl.job.core.router.action; +import com.xxl.job.core.glue.GlueFactory; import com.xxl.job.core.handler.IJobHandler; import com.xxl.job.core.handler.impl.GlueJobHandler; import com.xxl.job.core.router.HandlerRouter; @@ -25,7 +26,7 @@ if (!requestModel.isGlueSwitch()) { // bean model - // handler instance + // valid handler instance IJobHandler jobHandler = HandlerRouter.loadJobHandler(requestModel.getExecutorHandler()); if (jobHandler==null) { return new ResponseModel(ResponseModel.FAIL, "job handler for jobKey=[" + jobKey + "] not found."); @@ -46,6 +47,12 @@ } } else { // glue model + + // valid glueloader + if (!GlueFactory.isActive()) { + return new ResponseModel(ResponseModel.FAIL, "glueLoader for jobKey=[" + jobKey + "] not found."); + } + if (jobThread == null) { jobThread = HandlerRouter.registJobThread(jobKey, new GlueJobHandler(requestModel.getJobGroup(), requestModel.getJobName())); } else { diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/glue/GlueFactory.java b/xxl-job-core/src/main/java/com/xxl/job/core/glue/GlueFactory.java index 278ec6c..922daf9 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/glue/GlueFactory.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/glue/GlueFactory.java @@ -43,7 +43,10 @@ public void setGlueLoader(GlueLoader glueLoader) { this.glueLoader = glueLoader; } - + public static boolean isActive() { + return GlueFactory.glueFactory.glueLoader!=null; + } + // ----------------------------- spring support ----------------------------- private static ApplicationContext applicationContext; private static GlueFactory glueFactory; @@ -122,7 +125,7 @@ } // // load instance, singleton - public static String generateInstanceCacheKey(String job_group, String job_name){ + private static String generateInstanceCacheKey(String job_group, String job_name){ return job_group.concat("_").concat(job_name).concat("_instance"); } public IJobHandler loadInstance(String job_group, String job_name) throws Exception{ 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 cd052db..d1c44e5 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 @@ -1,5 +1,6 @@ package com.xxl.job.core.router.action; +import com.xxl.job.core.glue.GlueFactory; import com.xxl.job.core.handler.IJobHandler; import com.xxl.job.core.handler.impl.GlueJobHandler; import com.xxl.job.core.router.HandlerRouter; @@ -25,7 +26,7 @@ if (!requestModel.isGlueSwitch()) { // bean model - // handler instance + // valid handler instance IJobHandler jobHandler = HandlerRouter.loadJobHandler(requestModel.getExecutorHandler()); if (jobHandler==null) { return new ResponseModel(ResponseModel.FAIL, "job handler for jobKey=[" + jobKey + "] not found."); @@ -46,6 +47,12 @@ } } else { // glue model + + // valid glueloader + if (!GlueFactory.isActive()) { + return new ResponseModel(ResponseModel.FAIL, "glueLoader for jobKey=[" + jobKey + "] not found."); + } + if (jobThread == null) { jobThread = HandlerRouter.registJobThread(jobKey, new GlueJobHandler(requestModel.getJobGroup(), requestModel.getJobName())); } else { diff --git a/xxl-job-executor-example/src/main/resources/applicationcontext-xxl-job.xml b/xxl-job-executor-example/src/main/resources/applicationcontext-xxl-job.xml index cef7668..7a75362 100644 --- a/xxl-job-executor-example/src/main/resources/applicationcontext-xxl-job.xml +++ b/xxl-job-executor-example/src/main/resources/applicationcontext-xxl-job.xml @@ -15,9 +15,10 @@ - + + - +