diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java index ede432f2..441be757 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java @@ -10,7 +10,6 @@ import com.xxl.job.admin.core.thread.JobRegistryHelper; import com.xxl.job.core.biz.ExecutorBiz; import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.biz.model.TriggerParam; -import com.xxl.job.core.glue.GlueTypeEnum; import com.xxl.job.core.registry.RegistHelper; import com.xxl.job.core.rpc.netcom.NetComClientProxy; import org.apache.commons.collections.CollectionUtils; @@ -61,6 +60,7 @@ public class RemoteHttpJobBean extends QuartzJobBean { triggerParam.setExecutorHandler(jobInfo.getExecutorHandler()); triggerParam.setExecutorParams(jobInfo.getExecutorParam()); triggerParam.setGlueType(jobInfo.getGlueType()); + triggerParam.setGlueSource(jobInfo.getGlueSource()); triggerParam.setGlueUpdatetime(jobInfo.getGlueUpdatetime().getTime()); triggerParam.setLogId(jobLog.getId()); triggerParam.setLogDateTim(jobLog.getTriggerTime().getTime()); diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/biz/impl/ExecutorBizImpl.java b/xxl-job-core/src/main/java/com/xxl/job/core/biz/impl/ExecutorBizImpl.java index 6d720f33..f110e4f3 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/biz/impl/ExecutorBizImpl.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/biz/impl/ExecutorBizImpl.java @@ -58,7 +58,6 @@ public class ExecutorBizImpl implements ExecutorBiz { JobThread jobThread = XxlJobExecutor.loadJobThread(triggerParam.getJobId()); if (GlueTypeEnum.BEAN==GlueTypeEnum.match(triggerParam.getGlueType())) { - // bean model // valid handler IJobHandler jobHandler = XxlJobExecutor.loadJobHandler(triggerParam.getExecutorHandler()); @@ -80,13 +79,7 @@ public class ExecutorBizImpl implements ExecutorBiz { jobThread = XxlJobExecutor.registJobThread(triggerParam.getJobId(), jobHandler); } - } else { - // glue model - - // valid glueloader - if (!GlueFactory.isActive()) { - return new ReturnT(ReturnT.FAIL_CODE, "glueLoader for JobId=[" + triggerParam.getJobId() + "] not found."); - } + } else if (GlueTypeEnum.GLUE_GROOVY==GlueTypeEnum.match(triggerParam.getGlueType())) { // valid exists job thread:change handler or glue timeout, need kill old thread if (jobThread != null && @@ -103,7 +96,7 @@ public class ExecutorBizImpl implements ExecutorBiz { if (jobThread == null) { IJobHandler jobHandler = null; try { - jobHandler = GlueFactory.getInstance().loadNewInstance(triggerParam.getJobId()); + jobHandler = GlueFactory.getInstance().loadNewInstance(triggerParam.getGlueSource()); } catch (Exception e) { logger.error("", e); return new ReturnT(ReturnT.FAIL_CODE, e.getMessage()); diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/biz/model/TriggerParam.java b/xxl-job-core/src/main/java/com/xxl/job/core/biz/model/TriggerParam.java index fcede2a0..abf24db3 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/biz/model/TriggerParam.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/biz/model/TriggerParam.java @@ -15,6 +15,7 @@ public class TriggerParam implements Serializable{ private String executorParams; private String glueType; + private String glueSource; private long glueUpdatetime; private int logId; @@ -54,6 +55,14 @@ public class TriggerParam implements Serializable{ this.glueType = glueType; } + public String getGlueSource() { + return glueSource; + } + + public void setGlueSource(String glueSource) { + this.glueSource = glueSource; + } + public long getGlueUpdatetime() { return glueUpdatetime; } 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 04da6ce4..0ac26e98 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 @@ -1,6 +1,5 @@ package com.xxl.job.core.glue; -import com.xxl.job.core.glue.loader.GlueLoader; import com.xxl.job.core.handler.IJobHandler; import groovy.lang.GroovyClassLoader; import org.slf4j.Logger; @@ -27,17 +26,6 @@ public class GlueFactory implements ApplicationContextAware { * groovy class loader */ private GroovyClassLoader groovyClassLoader = new GroovyClassLoader(); - - /** - * code source loader - */ - private GlueLoader glueLoader; - public void setGlueLoader(GlueLoader glueLoader) { - this.glueLoader = glueLoader; - } - public static boolean isActive() { - return GlueFactory.glueFactory.glueLoader!=null; - } // ----------------------------- spring support ----------------------------- private static ApplicationContext applicationContext; @@ -56,7 +44,7 @@ public class GlueFactory implements ApplicationContextAware { * inject action of spring * @param instance */ - public void injectService(Object instance){ + private void injectService(Object instance){ if (instance==null) { return; } @@ -106,11 +94,7 @@ public class GlueFactory implements ApplicationContextAware { // ----------------------------- load instance ----------------------------- // load new instance, prototype - public IJobHandler loadNewInstance(int jobId) throws Exception{ - if (jobId==0) { - return null; - } - String codeSource = glueLoader.load(jobId); + public IJobHandler loadNewInstance(String codeSource) throws Exception{ if (codeSource!=null && codeSource.trim().length()>0) { Class clazz = groovyClassLoader.parseClass(codeSource); if (clazz != null) { 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 113de5fe..00c69389 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 @@ -41,18 +41,9 @@ - - - - - - - - - - + - +