From 548426e9a7755093fdc465dfd29faa4b92d56ccc Mon Sep 17 00:00:00 2001 From: "xueli.xue" Date: Wed, 26 Apr 2017 20:51:43 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=BA=95=E5=B1=82=E8=A1=A8=E7=BB=93?= =?UTF-8?q?=E6=9E=84=E8=B0=83=E6=95=B4=EF=BC=8C=E4=B8=BA=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=81=9A=E5=87=86=E5=A4=87=EF=BC=9B=202?= =?UTF-8?q?=E3=80=81=E4=BA=A4=E4=BA=92=E8=B0=83=E6=95=B4=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 +- db/tables_xxl_job.sql | 7 +- .../admin/controller/JobCodeController.java | 1 + .../admin/controller/JobInfoController.java | 4 + .../admin/core/jobbean/RemoteHttpJobBean.java | 3 +- .../xxl/job/admin/core/model/XxlJobInfo.java | 18 ++--- .../job/admin/core/model/XxlJobLogGlue.java | 20 +++-- .../admin/service/impl/XxlJobServiceImpl.java | 14 +++- .../mybatis-mapper/XxlJobInfoMapper.xml | 10 +-- .../mybatis-mapper/XxlJobLogGlueMapper.xml | 4 + .../template/jobinfo/jobinfo.index.ftl | 48 ++++++----- .../main/webapp/static/js/jobinfo.index.1.js | 80 +++++-------------- .../job/core/biz/impl/ExecutorBizImpl.java | 3 +- .../xxl/job/core/biz/model/TriggerParam.java | 10 +-- .../com/xxl/job/core/glue/GlueTypeEnum.java | 29 +++++++ .../com/xxl/job/core/thread/JobThread.java | 3 + 16 files changed, 137 insertions(+), 121 deletions(-) create mode 100644 xxl-job-core/src/main/java/com/xxl/job/core/glue/GlueTypeEnum.java diff --git a/README.md b/README.md index 21f8d4e4..ae3c4a4a 100644 --- a/README.md +++ b/README.md @@ -786,14 +786,14 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段 #### 6.14 版本 V1.7.0 特性 (Coding) - 1、支持脚本JOB(源码或指定路径), 即shell/python/php等, 日志实时输出并支持在线监控;定制JobHandler实现; + #### TODO LIST - 1、任务并行触发处理规则:串行调度队列(默认)、并行、忽略、覆盖; - 2、任务权限管理; - 3、执行器,server启动,注册逻辑调整; - 4、调度失败重试机制; - 5、JobHandler开启多线程时,支持记录执行日志; -- 6、执行器与数据库解耦,只需配置调度中心集群地址即可; - +- 6、执行器与数据库解耦,只需配置调度中心集群地址即可(与当前通过JDBC注册自动发现方式,相冲突,待考虑); ## 七、其他 diff --git a/db/tables_xxl_job.sql b/db/tables_xxl_job.sql index e03b6f41..22dfe079 100644 --- a/db/tables_xxl_job.sql +++ b/db/tables_xxl_job.sql @@ -157,7 +157,7 @@ CREATE TABLE `XXL_JOB_QRTZ_TRIGGER_INFO` ( `executor_route_strategy` varchar(50) DEFAULT NULL COMMENT '执行器路由策略', `executor_handler` varchar(255) DEFAULT NULL COMMENT '执行器任务handler', `executor_param` varchar(255) DEFAULT NULL COMMENT '执行器任务参数', - `glue_switch` int(11) DEFAULT '0' COMMENT 'GLUE模式开关:0-否,1-是', + `glue_type` varchar(50) NOT NULL COMMENT 'GLUE类型', `glue_source` text COMMENT 'GLUE源代码', `glue_remark` varchar(128) DEFAULT NULL COMMENT 'GLUE备注', `glue_updatetime` datetime DEFAULT NULL COMMENT 'GLUE更新时间', @@ -184,8 +184,9 @@ CREATE TABLE `XXL_JOB_QRTZ_TRIGGER_LOG` ( CREATE TABLE `XXL_JOB_QRTZ_TRIGGER_LOGGLUE` ( `id` int(11) NOT NULL AUTO_INCREMENT, `job_id` int(11) NOT NULL COMMENT '任务,主键ID', - `glue_source` text, - `glue_remark` varchar(128) NOT NULL, + `glue_type` varchar(50) DEFAULT NULL COMMENT 'GLUE类型', + `glue_source` text COMMENT 'GLUE源代码', + `glue_remark` varchar(128) NOT NULL COMMENT 'GLUE备注', `add_time` timestamp NULL DEFAULT NULL, `update_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobCodeController.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobCodeController.java index e3716594..bc23314e 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobCodeController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobCodeController.java @@ -59,6 +59,7 @@ public class JobCodeController { // log old code XxlJobLogGlue xxlJobLogGlue = new XxlJobLogGlue(); xxlJobLogGlue.setJobId(exists_jobInfo.getId()); + xxlJobLogGlue.setGlueType(exists_jobInfo.getGlueType()); xxlJobLogGlue.setGlueSource(exists_jobInfo.getGlueSource()); xxlJobLogGlue.setGlueRemark(exists_jobInfo.getGlueRemark()); xxlJobLogGlueDao.save(xxlJobLogGlue); diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobInfoController.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobInfoController.java index 0ab00458..c5b4a2b8 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobInfoController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobInfoController.java @@ -6,6 +6,7 @@ import com.xxl.job.admin.core.route.ExecutorRouteStrategyEnum; import com.xxl.job.admin.dao.IXxlJobGroupDao; import com.xxl.job.admin.service.IXxlJobService; import com.xxl.job.core.biz.model.ReturnT; +import com.xxl.job.core.glue.GlueTypeEnum; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; @@ -35,6 +36,9 @@ public class JobInfoController { // 路由策略-列表 model.addAttribute("ExecutorRouteStrategyEnum", ExecutorRouteStrategyEnum.values()); + // Glue类型-字典 + model.addAttribute("GlueTypeEnum", GlueTypeEnum.values()); + // 任务组 List jobGroupList = xxlJobGroupDao.findAll(); model.addAttribute("JobGroupList", jobGroupList); 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 b98af8a2..ede432f2 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,6 +10,7 @@ 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; @@ -59,7 +60,7 @@ public class RemoteHttpJobBean extends QuartzJobBean { triggerParam.setJobId(jobInfo.getId()); triggerParam.setExecutorHandler(jobInfo.getExecutorHandler()); triggerParam.setExecutorParams(jobInfo.getExecutorParam()); - triggerParam.setGlueSwitch((jobInfo.getGlueSwitch()==0)?false:true); + triggerParam.setGlueType(jobInfo.getGlueType()); triggerParam.setGlueUpdatetime(jobInfo.getGlueUpdatetime().getTime()); triggerParam.setLogId(jobLog.getId()); triggerParam.setLogDateTim(jobLog.getTriggerTime().getTime()); diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobInfo.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobInfo.java index 669dd071..3b84c7dd 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobInfo.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobInfo.java @@ -24,15 +24,15 @@ public class XxlJobInfo { private String executorHandler; // 执行器,任务Handler名称 private String executorParam; // 执行器,任务参数 - private int glueSwitch; // GLUE模式开关:0-否,1-是 - private String glueSource; // GLUE源代码 - private String glueRemark; // GLUE备注 - private Date glueUpdatetime;// GLUE更新时间 + private String glueType; // GLUE类型 #com.xxl.job.core.glue.GlueTypeEnum + private String glueSource; // GLUE源代码 + private String glueRemark; // GLUE备注 + private Date glueUpdatetime; // GLUE更新时间 private String childJobKey; // 子任务Key // copy from quartz - private String jobStatus; // 任务状态 【base on quartz】 + private String jobStatus; // 任务状态 【base on quartz】 public int getId() { return id; @@ -122,12 +122,12 @@ public class XxlJobInfo { this.executorParam = executorParam; } - public int getGlueSwitch() { - return glueSwitch; + public String getGlueType() { + return glueType; } - public void setGlueSwitch(int glueSwitch) { - this.glueSwitch = glueSwitch; + public void setGlueType(String glueType) { + this.glueType = glueType; } public String getGlueSource() { diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLogGlue.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLogGlue.java index c2bbab80..c617d425 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLogGlue.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLogGlue.java @@ -8,6 +8,7 @@ public class XxlJobLogGlue { private int id; private int jobId; // 任务主键ID + private String glueType; // GLUE类型 #com.xxl.job.core.glue.GlueTypeEnum private String glueSource; private String glueRemark; private String addTime; @@ -29,6 +30,14 @@ public class XxlJobLogGlue { this.jobId = jobId; } + public String getGlueType() { + return glueType; + } + + public void setGlueType(String glueType) { + this.glueType = glueType; + } + public String getGlueSource() { return glueSource; } @@ -61,15 +70,4 @@ public class XxlJobLogGlue { this.updateTime = updateTime; } - @Override - public String toString() { - return "XxlJobLogGlue{" + - "id=" + id + - ", jobId=" + jobId + - ", glueSource='" + glueSource + '\'' + - ", glueRemark='" + glueRemark + '\'' + - ", addTime='" + addTime + '\'' + - ", updateTime='" + updateTime + '\'' + - '}'; - } } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java index 621ce973..9495431b 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java @@ -8,6 +8,7 @@ import com.xxl.job.admin.core.thread.JobRegistryHelper; import com.xxl.job.admin.dao.*; import com.xxl.job.admin.service.IXxlJobService; import com.xxl.job.core.biz.model.ReturnT; +import com.xxl.job.core.glue.GlueTypeEnum; import com.xxl.job.core.registry.RegistHelper; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; @@ -84,7 +85,10 @@ public class XxlJobServiceImpl implements IXxlJobService { if (ExecutorRouteStrategyEnum.match(jobInfo.getExecutorRouteStrategy(), null) == null) { return new ReturnT(500, "路由策略非法"); } - if (jobInfo.getGlueSwitch()==0 && StringUtils.isBlank(jobInfo.getExecutorHandler())) { + if (GlueTypeEnum.match(jobInfo.getGlueType()) == null) { + return new ReturnT(500, "运行模式非法非法"); + } + if (GlueTypeEnum.BEAN==GlueTypeEnum.match(jobInfo.getGlueType()) && StringUtils.isBlank(jobInfo.getExecutorHandler())) { return new ReturnT(500, "请输入“JobHandler”"); } @@ -147,7 +151,11 @@ public class XxlJobServiceImpl implements IXxlJobService { if (ExecutorRouteStrategyEnum.match(jobInfo.getExecutorRouteStrategy(), null) == null) { return new ReturnT(500, "路由策略非法"); } - if (jobInfo.getGlueSwitch()==0 && StringUtils.isBlank(jobInfo.getExecutorHandler())) { + + if (GlueTypeEnum.match(jobInfo.getGlueType()) == null) { + return new ReturnT(500, "运行模式非法非法"); + } + if (GlueTypeEnum.BEAN==GlueTypeEnum.match(jobInfo.getGlueType()) && StringUtils.isBlank(jobInfo.getExecutorHandler())) { return new ReturnT(500, "请输入“JobHandler”"); } @@ -180,7 +188,7 @@ public class XxlJobServiceImpl implements IXxlJobService { exists_jobInfo.setExecutorRouteStrategy(jobInfo.getExecutorRouteStrategy()); exists_jobInfo.setExecutorHandler(jobInfo.getExecutorHandler()); exists_jobInfo.setExecutorParam(jobInfo.getExecutorParam()); - exists_jobInfo.setGlueSwitch(jobInfo.getGlueSwitch()); + exists_jobInfo.setGlueType(jobInfo.getGlueType()); exists_jobInfo.setChildJobKey(jobInfo.getChildJobKey()); xxlJobInfoDao.update(exists_jobInfo); diff --git a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml index 2555de5c..0b97c308 100644 --- a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml +++ b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml @@ -20,7 +20,7 @@ - + @@ -40,7 +40,7 @@ t.executor_route_strategy, t.executor_handler, t.executor_param, - t.glue_switch, + t.glue_type, t.glue_source, t.glue_remark, t.glue_updatetime, @@ -87,7 +87,7 @@ executor_route_strategy, executor_handler, executor_param, - glue_switch, + glue_type, glue_source, glue_remark, glue_updatetime, @@ -103,7 +103,7 @@ #{executorRouteStrategy}, #{executorHandler}, #{executorParam}, - #{glueSwitch}, + #{glueType}, #{glueSource}, #{glueRemark}, NOW(), @@ -132,7 +132,7 @@ executor_route_strategy = #{executorRouteStrategy}, executor_handler = #{executorHandler}, executor_param = #{executorParam}, - glue_switch = #{glueSwitch}, + glue_type = #{glueType}, glue_source = #{glueSource}, glue_remark = #{glueRemark}, glue_updatetime = #{glueUpdatetime}, diff --git a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogGlueMapper.xml b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogGlueMapper.xml index f73b23d4..3b1fbfaf 100644 --- a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogGlueMapper.xml +++ b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogGlueMapper.xml @@ -6,6 +6,7 @@ + @@ -15,6 +16,7 @@ t.id, t.job_id, + t.glue_type, t.glue_source, t.glue_remark, t.add_time, @@ -24,12 +26,14 @@ INSERT INTO XXL_JOB_QRTZ_TRIGGER_LOGGLUE ( `job_id`, + `glue_type`, `glue_source`, `glue_remark`, `add_time`, `update_time` ) VALUES ( #{jobId}, + #{glueType}, #{glueSource}, #{glueRemark}, now(), diff --git a/xxl-job-admin/src/main/webapp/WEB-INF/template/jobinfo/jobinfo.index.ftl b/xxl-job-admin/src/main/webapp/WEB-INF/template/jobinfo/jobinfo.index.ftl index 85821381..0d97d8aa 100644 --- a/xxl-job-admin/src/main/webapp/WEB-INF/template/jobinfo/jobinfo.index.ftl +++ b/xxl-job-admin/src/main/webapp/WEB-INF/template/jobinfo/jobinfo.index.ftl @@ -83,7 +83,7 @@ 更新时间 负责人 报警邮件 - GLUE模式 + 运行模式 状态 操作 @@ -136,16 +136,22 @@
- +
-
- - GLUE  - -
+
+ +
+
+
+ +
@@ -153,10 +159,7 @@
-
- -
-
+
@@ -227,16 +230,22 @@ public class DemoGlueJobHandler extends IJobHandler {
- +
-
- - GLUE  - -
+
+ +
+
+
+ +
@@ -244,10 +253,7 @@ public class DemoGlueJobHandler extends IJobHandler {
-
- -
-
+
diff --git a/xxl-job-admin/src/main/webapp/static/js/jobinfo.index.1.js b/xxl-job-admin/src/main/webapp/static/js/jobinfo.index.1.js index c45edb23..21ad6d0f 100644 --- a/xxl-job-admin/src/main/webapp/static/js/jobinfo.index.1.js +++ b/xxl-job-admin/src/main/webapp/static/js/jobinfo.index.1.js @@ -70,7 +70,7 @@ $(function() { }, { "data": 'author', "visible" : true, "width":'10%'}, { "data": 'alarmEmail', "visible" : false}, - { "data": 'glueSwitch', "visible" : false}, + { "data": 'glueType', "visible" : false}, { "data": 'jobStatus', "width":'10%', @@ -103,7 +103,7 @@ $(function() { // log url var codeBtn = ""; - if(row.glueSwitch > 0){ + if ('BEAN' != row.glueType) { var codeUrl = base_url +'/jobcode?jobId='+ row.id; codeBtn = ' ' } @@ -118,7 +118,7 @@ $(function() { ' executorRouteStrategy="'+row.executorRouteStrategy +'" '+ ' executorHandler="'+row.executorHandler +'" '+ ' executorParam="'+ row.executorParam +'" '+ - ' glueSwitch="'+ row.glueSwitch +'" '+ + ' glueType="'+ row.glueType +'" '+ ' childJobKey="'+ row.childJobKey +'" '+ '>'+ ' '+ @@ -240,9 +240,6 @@ $(function() { jobCron : { required : true }, - executorHandler : { - required : false - }, alarmEmail : { required : true }, @@ -257,9 +254,6 @@ $(function() { jobCron : { required :"请输入“Cron”." }, - executorHandler : { - required : "请输入“jobHandler”." - }, alarmEmail : { required : "请输入“报警邮件”." }, @@ -306,21 +300,20 @@ $(function() { $("#addModal .form input[name='executorHandler']").removeAttr("readonly"); }); - // GLUE模式开启 - $(".ifGLUE").click(function(){ - var ifGLUE = $(this).is(':checked'); - var $executorHandler = $(this).parents("form").find("input[name='executorHandler']"); - var $glueSwitch = $(this).parents("form").find("input[name='glueSwitch']"); - if (ifGLUE) { - $executorHandler.val(""); - $executorHandler.attr("readonly","readonly"); - $glueSwitch.val(1); - } else { - $executorHandler.removeAttr("readonly"); - $glueSwitch.val(0); - } - }); - + + // GLUE模式开启 + $(".glueType").change(function(){ + var $executorHandler = $(this).parents("form").find("input[name='executorHandler']"); + var glueType = $(this).val(); + console.log(glueType); + if ('BEAN' != glueType) { + $executorHandler.val(""); + $executorHandler.attr("readonly","readonly"); + } else { + $executorHandler.removeAttr("readonly"); + } + }); + // 更新 $("#job_list").on('click', '.update',function() { @@ -335,20 +328,10 @@ $(function() { $("#updateModal .form input[name='executorHandler']").val($(this).parent('p').attr("executorHandler")); $("#updateModal .form input[name='executorParam']").val($(this).parent('p').attr("executorParam")); $("#updateModal .form input[name='childJobKey']").val($(this).parent('p').attr("childJobKey")); + $('#updateModal .form select[name=glueType] option[value='+ $(this).parent('p').attr("glueType") +']').prop('selected', true); - // glueSwitch - var glueSwitch = $(this).parent('p').attr("glueSwitch"); - $("#updateModal .form input[name='glueSwitch']").val(glueSwitch); - var $ifGLUE = $("#updateModal .form .ifGLUE"); - var $executorHandler = $("#updateModal .form input[name='executorHandler']"); - if (glueSwitch == 1) { - $ifGLUE.attr("checked", true); - $executorHandler.val(""); - $executorHandler.attr("readonly","readonly"); - } else { - $ifGLUE.attr("checked", false); - $executorHandler.removeAttr("readonly"); - } + + $("#updateModal .form select[name=glueType]").change(); // show $('#updateModal').modal({backdrop: false, keyboard: false}).modal('show'); @@ -366,9 +349,6 @@ $(function() { jobCron : { required : true }, - executorHandler : { - required : false - }, alarmEmail : { required : true }, @@ -383,9 +363,6 @@ $(function() { jobCron : { required :"请输入“Cron”." }, - executorHandler : { - required : "请输入“jobHandler”." - }, alarmEmail : { required : "请输入“报警邮件”." }, @@ -428,21 +405,4 @@ $(function() { $("#updateModal .form")[0].reset() }); - - /* - // 新增-添加参数 - $("#addModal .addParam").on('click', function () { - var html = '
'+ - ''+ - '
'+ - '
'+ - '
'; - $(this).parents('.form-group').parent().append(html); - - $("#addModal .removeParam").on('click', function () { - $(this).parents('.form-group').remove(); - }); - }); - */ - }); 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 babb739b..6d720f33 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 @@ -6,6 +6,7 @@ import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.biz.model.TriggerParam; import com.xxl.job.core.executor.XxlJobExecutor; import com.xxl.job.core.glue.GlueFactory; +import com.xxl.job.core.glue.GlueTypeEnum; import com.xxl.job.core.handler.IJobHandler; import com.xxl.job.core.handler.impl.GlueJobHandler; import com.xxl.job.core.log.XxlJobFileAppender; @@ -56,7 +57,7 @@ public class ExecutorBizImpl implements ExecutorBiz { // load old thread JobThread jobThread = XxlJobExecutor.loadJobThread(triggerParam.getJobId()); - if (!triggerParam.isGlueSwitch()) { + if (GlueTypeEnum.BEAN==GlueTypeEnum.match(triggerParam.getGlueType())) { // bean model // valid handler 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 bf72ae73..fcede2a0 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 @@ -14,7 +14,7 @@ public class TriggerParam implements Serializable{ private String executorHandler; private String executorParams; - private boolean glueSwitch; + private String glueType; private long glueUpdatetime; private int logId; @@ -46,12 +46,12 @@ public class TriggerParam implements Serializable{ this.executorParams = executorParams; } - public boolean isGlueSwitch() { - return glueSwitch; + public String getGlueType() { + return glueType; } - public void setGlueSwitch(boolean glueSwitch) { - this.glueSwitch = glueSwitch; + public void setGlueType(String glueType) { + this.glueType = glueType; } public long getGlueUpdatetime() { diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/glue/GlueTypeEnum.java b/xxl-job-core/src/main/java/com/xxl/job/core/glue/GlueTypeEnum.java new file mode 100644 index 00000000..72de606a --- /dev/null +++ b/xxl-job-core/src/main/java/com/xxl/job/core/glue/GlueTypeEnum.java @@ -0,0 +1,29 @@ +package com.xxl.job.core.glue; + +/** + * Created by xuxueli on 17/4/26. + */ +public enum GlueTypeEnum { + + BEAN("BEAN模式"), + GLUE_GROOVY("GLUE模式(Java)"), + GLUE_SHELL("GLUE模式(Shell)"), + GLUE_PYTHON("GLUE模式(Python)"); + + private String desc; + private GlueTypeEnum(String desc) { + this.desc = desc; + } + public String getDesc() { + return desc; + } + + public static GlueTypeEnum match(String name){ + for (GlueTypeEnum item: GlueTypeEnum.values()) { + if (item.name().equals(name)) { + return item; + } + } + return null; + } +} diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/thread/JobThread.java b/xxl-job-core/src/main/java/com/xxl/job/core/thread/JobThread.java index b942df5e..d1f81e2a 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/thread/JobThread.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/thread/JobThread.java @@ -107,6 +107,9 @@ public class JobThread extends Thread{ } } } catch (Exception e) { + if (toStop) { + logger.error("----------- xxl-job toStop, stopReason:{}", stopReason); + } logger.error("----------- xxl-job JobThread Exception:", e); } } -- GitLab