diff --git a/db/tables_xxl_job.sql b/db/tables_xxl_job.sql index c632ed28..74fc2e44 100644 --- a/db/tables_xxl_job.sql +++ b/db/tables_xxl_job.sql @@ -145,20 +145,17 @@ CREATE TABLE XXL_JOB_QRTZ_LOCKS -CREATE TABLE XXL_JOB_QRTZ_TRIGGER_INFO ( +CREATE TABLE `XXL_JOB_QRTZ_TRIGGER_INFO` ( `id` int(11) NOT NULL AUTO_INCREMENT, `job_group` varchar(255) NOT NULL COMMENT '任务组', `job_name` varchar(255) NOT NULL COMMENT '任务名', `job_cron` varchar(128) NOT NULL COMMENT '任务执行CRON', `job_desc` varchar(255) NOT NULL, - `job_class` varchar(255) NOT NULL COMMENT '任务执行JobBean', `add_time` datetime DEFAULT NULL, `update_time` datetime DEFAULT NULL, `author` varchar(64) DEFAULT NULL COMMENT '作者', `alarm_email` varchar(255) DEFAULT NULL COMMENT '报警邮件', - `alarm_threshold` int(11) DEFAULT NULL COMMENT '报警阀值(连续失败次数)', `executor_address` varchar(255) 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_source` text COMMENT 'GLUE源代码', @@ -166,15 +163,12 @@ CREATE TABLE XXL_JOB_QRTZ_TRIGGER_INFO ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -CREATE TABLE XXL_JOB_QRTZ_TRIGGER_LOG ( + +CREATE TABLE `XXL_JOB_QRTZ_TRIGGER_LOG` ( `id` int(11) NOT NULL AUTO_INCREMENT, `job_group` varchar(255) NOT NULL COMMENT '任务组', `job_name` varchar(255) NOT NULL COMMENT '任务名', - `job_cron` varchar(128) NOT NULL COMMENT '任务执行CRON表达式', - `job_desc` varchar(255) NOT NULL, - `job_class` varchar(255) NOT NULL COMMENT '任务执行JobBean', `executor_address` varchar(255) DEFAULT NULL COMMENT '执行器地址,本次执行的地址', - `executor_handler` varchar(255) DEFAULT NULL COMMENT '执行器任务handler', `executor_param` varchar(255) DEFAULT NULL COMMENT 'executor_param', `trigger_time` datetime DEFAULT NULL COMMENT '调度-时间', `trigger_status` varchar(255) DEFAULT NULL COMMENT '调度-结果', 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 c082b031..762163a3 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 @@ -40,23 +40,20 @@ public class JobInfoController { @RequestMapping("/add") @ResponseBody - public ReturnT add(String jobGroup, String jobName, String jobCron, String jobDesc, - String executorAddress, String executorParam, - String author, String alarmEmail, int alarmThreshold, + public ReturnT add(String jobGroup, String jobCron, String jobDesc, + String executorAddress, String executorParam, String author, String alarmEmail, int glueSwitch, String glueSource, String glueRemark) { return xxlJobService.add(jobGroup, jobCron, jobDesc, executorAddress, executorParam, - author, alarmEmail, alarmThreshold, glueSwitch, glueSource, glueRemark); + author, alarmEmail, glueSwitch, glueSource, glueRemark); } @RequestMapping("/reschedule") @ResponseBody public ReturnT reschedule(String jobGroup, String jobName, String jobCron, String jobDesc, - String executorAddress, String executorParam, - String author, String alarmEmail, int alarmThreshold) { + String executorAddress, String executorParam, String author, String alarmEmail) { - return xxlJobService.reschedule(jobGroup, jobName, jobCron, jobDesc, executorAddress, executorParam, author, - alarmEmail, alarmThreshold); + return xxlJobService.reschedule(jobGroup, jobName, jobCron, jobDesc, executorAddress, executorParam, author, alarmEmail); } @RequestMapping("/remove") 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 8227fdda..6b92877d 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 @@ -1,20 +1,5 @@ package com.xxl.job.admin.core.jobbean; -import java.text.MessageFormat; -import java.util.Arrays; -import java.util.Collections; -import java.util.Date; -import java.util.HashMap; -import java.util.List; - -import org.apache.commons.lang.StringUtils; -import org.quartz.JobExecutionContext; -import org.quartz.JobExecutionException; -import org.quartz.JobKey; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.scheduling.quartz.QuartzJobBean; - import com.xxl.job.admin.core.callback.XxlJobLogCallbackServer; import com.xxl.job.admin.core.model.XxlJobInfo; import com.xxl.job.admin.core.model.XxlJobLog; @@ -24,6 +9,16 @@ import com.xxl.job.core.handler.HandlerRepository.ActionEnum; import com.xxl.job.core.handler.HandlerRepository.HandlerParamEnum; import com.xxl.job.core.util.HttpUtil; import com.xxl.job.core.util.HttpUtil.RemoteCallBack; +import org.apache.commons.lang.StringUtils; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.quartz.JobKey; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.scheduling.quartz.QuartzJobBean; + +import java.text.MessageFormat; +import java.util.*; /** * http job bean @@ -44,9 +39,6 @@ public class RemoteHttpJobBean extends QuartzJobBean { XxlJobLog jobLog = new XxlJobLog(); jobLog.setJobGroup(jobInfo.getJobGroup()); jobLog.setJobName(jobInfo.getJobName()); - jobLog.setJobCron(jobInfo.getJobCron()); - jobLog.setJobDesc(jobInfo.getJobDesc()); - jobLog.setJobClass(jobInfo.getJobClass()); DynamicSchedulerUtil.xxlJobLogDao.save(jobLog); logger.info(">>>>>>>>>>> xxl-job trigger start, jobId:{}", jobLog.getId()); @@ -66,7 +58,6 @@ public class RemoteHttpJobBean extends QuartzJobBean { // failover trigger RemoteCallBack callback = failoverTrigger(jobInfo.getExecutorAddress(), params, jobLog); - jobLog.setExecutorHandler(jobInfo.getGlueSwitch()==0?jobInfo.getExecutorHandler():"GLUE任务"); jobLog.setExecutorParam(jobInfo.getExecutorParam()); logger.info(">>>>>>>>>>> xxl-job failoverTrigger response, jobId:{}, callback:{}", jobLog.getId(), callback); 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 80678be7..3a3c0b9f 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 @@ -14,18 +14,14 @@ public class XxlJobInfo { private String jobName; // 任务名 private String jobCron; // 任务执行CRON表达式 【base on quartz】 private String jobDesc; - private String jobClass; // 任务执行JobBean 【base on quartz】 - //private String jobData; // 任务执行数据 Map-JSON-String private Date addTime; private Date updateTime; private String author; // 负责人 private String alarmEmail; // 报警邮件 - private int alarmThreshold; // 报警阀值 private String executorAddress; // 执行器地址,有多个则逗号分隔 - private String executorHandler; // 执行器,任务Handler名称 private String executorParam; // 执行器,任务参数 private int glueSwitch; // GLUE模式开关:0-否,1-是 @@ -35,6 +31,9 @@ public class XxlJobInfo { // copy from quartz private String jobStatus; // 任务状态 【base on quartz】 + // generate job key + private String jobKey; + public int getId() { return id; } @@ -75,14 +74,6 @@ public class XxlJobInfo { this.jobDesc = jobDesc; } - public String getJobClass() { - return jobClass; - } - - public void setJobClass(String jobClass) { - this.jobClass = jobClass; - } - public Date getAddTime() { return addTime; } @@ -115,14 +106,6 @@ public class XxlJobInfo { this.alarmEmail = alarmEmail; } - public int getAlarmThreshold() { - return alarmThreshold; - } - - public void setAlarmThreshold(int alarmThreshold) { - this.alarmThreshold = alarmThreshold; - } - public String getExecutorAddress() { return executorAddress; } @@ -131,14 +114,6 @@ public class XxlJobInfo { this.executorAddress = executorAddress; } - public String getExecutorHandler() { - return executorHandler; - } - - public void setExecutorHandler(String executorHandler) { - this.executorHandler = executorHandler; - } - public String getExecutorParam() { return executorParam; } @@ -178,5 +153,13 @@ public class XxlJobInfo { public void setJobStatus(String jobStatus) { this.jobStatus = jobStatus; } - + + public String getJobKey() { + return jobGroup.concat("_").concat(jobName); + } + + public void setJobKey(String jobKey) { + this.jobKey = jobKey; + } + } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLog.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLog.java index 44e4595f..70c52ab1 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLog.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLog.java @@ -13,12 +13,8 @@ public class XxlJobLog { // job info private String jobGroup; private String jobName; - private String jobCron; - private String jobDesc; - private String jobClass; private String executorAddress; // 执行器地址,有多个则逗号分隔 - private String executorHandler; // 执行器,任务Handler名称 private String executorParam; // 执行器,任务参数 // trigger info @@ -49,36 +45,12 @@ public class XxlJobLog { public void setJobName(String jobName) { this.jobName = jobName; } - public String getJobCron() { - return jobCron; - } - public void setJobCron(String jobCron) { - this.jobCron = jobCron; - } - public String getJobDesc() { - return jobDesc; - } - public void setJobDesc(String jobDesc) { - this.jobDesc = jobDesc; - } - public String getJobClass() { - return jobClass; - } - public void setJobClass(String jobClass) { - this.jobClass = jobClass; - } public String getExecutorAddress() { return executorAddress; } public void setExecutorAddress(String executorAddress) { this.executorAddress = executorAddress; } - public String getExecutorHandler() { - return executorHandler; - } - public void setExecutorHandler(String executorHandler) { - this.executorHandler = executorHandler; - } public String getExecutorParam() { return executorParam; } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobMonitorHelper.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobMonitorHelper.java index 4a10ffb7..5396843c 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobMonitorHelper.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobMonitorHelper.java @@ -1,21 +1,16 @@ package com.xxl.job.admin.core.thread; -import java.text.MessageFormat; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.LinkedBlockingQueue; -import java.util.concurrent.TimeUnit; - -import org.apache.commons.lang.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import com.xxl.job.admin.core.model.XxlJobInfo; import com.xxl.job.admin.core.model.XxlJobLog; import com.xxl.job.admin.core.util.DynamicSchedulerUtil; import com.xxl.job.admin.core.util.MailUtil; import com.xxl.job.core.util.HttpUtil.RemoteCallBack; +import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.text.MessageFormat; +import java.util.concurrent.*; /** * job monitor helper @@ -52,18 +47,10 @@ public class JobMonitorHelper { // pass } if (RemoteCallBack.FAIL.equals(log.getTriggerStatus()) || RemoteCallBack.FAIL.equals(log.getHandleStatus())) { - String monotorKey = log.getJobGroup().concat("_").concat(log.getJobName()); - Integer count = countMap.get(monotorKey); - if (count == null) { - count = new Integer(0); - } - count += 1; - countMap.put(monotorKey, count); XxlJobInfo info = DynamicSchedulerUtil.xxlJobInfoDao.load(log.getJobGroup(), log.getJobName()); - if (count >= info.getAlarmThreshold()) { - MailUtil.sendMail(info.getAlarmEmail(), "《调度平台中心-监控报警》", - MessageFormat.format("调度任务[{0}]失败报警,连续失败次数:{1}", monotorKey, count), false, null); - countMap.remove(monotorKey); + if (info!=null && info.getAlarmEmail()!=null && info.getAlarmEmail().trim().length()>0) { + MailUtil.sendMail(info.getAlarmEmail(), "《调度监控报警-调度平台平台XXL-JOB》", + MessageFormat.format("任务调度失败, JobKey={0}, 任务描述:{1}.", info.getJobKey(), info.getJobDesc()), false, null); } } } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/DynamicSchedulerUtil.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/DynamicSchedulerUtil.java index a200b6d3..76a7f8a8 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/DynamicSchedulerUtil.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/DynamicSchedulerUtil.java @@ -8,6 +8,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import com.xxl.job.admin.core.jobbean.RemoteHttpJobBean; import org.quartz.CronScheduleBuilder; import org.quartz.CronTrigger; import org.quartz.Job; @@ -130,7 +131,7 @@ public final class DynamicSchedulerUtil implements ApplicationContextAware, Init JobKey jobKey = new JobKey(jobInfo.getJobName(), jobInfo.getJobGroup()); try { Trigger trigger = scheduler.getTrigger(triggerKey); - JobDetail jobDetail = scheduler.getJobDetail(jobKey); + TriggerState triggerState = scheduler.getTriggerState(triggerKey); // parse params @@ -138,10 +139,10 @@ public final class DynamicSchedulerUtil implements ApplicationContextAware, Init String cronExpression = ((CronTriggerImpl) trigger).getCronExpression(); jobInfo.setJobCron(cronExpression); } - if (jobDetail!=null) { - String jobClass = jobDetail.getJobClass().getName(); - jobInfo.setJobClass(jobClass); - } + + //JobDetail jobDetail = scheduler.getJobDetail(jobKey); + //String jobClass = jobDetail.getJobClass().getName(); + if (triggerState!=null) { jobInfo.setJobStatus(triggerState.name()); } @@ -175,12 +176,7 @@ public final class DynamicSchedulerUtil implements ApplicationContextAware, Init CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).withSchedule(cronScheduleBuilder).build(); // JobDetail : jobClass - Class jobClass_ = null; - try { - jobClass_ = (Class)Class.forName(jobInfo.getJobClass()); - } catch (ClassNotFoundException e) { - e.printStackTrace(); - } + Class jobClass_ = RemoteHttpJobBean.class; // Class.forName(jobInfo.getJobClass()); JobDetail jobDetail = JobBuilder.newJob(jobClass_).withIdentity(jobKey).build(); /*if (jobInfo.getJobData()!=null) { diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/service/IXxlJobService.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/service/IXxlJobService.java index b1fd8c56..6d712a7e 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/service/IXxlJobService.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/service/IXxlJobService.java @@ -14,13 +14,11 @@ public interface IXxlJobService { public Map pageList(int start, int length, String jobGroup, String jobDesc, String filterTime); public ReturnT add(String jobGroup, String jobCron, String jobDesc, - String executorAddress, String executorParam, - String author, String alarmEmail, int alarmThreshold, + String executorAddress, String executorParam, String author, String alarmEmail, int glueSwitch, String glueSource, String glueRemark); public ReturnT reschedule(String jobGroup, String jobName, String jobCron, String jobDesc, - String handler_address, String handler_params, - String author, String alarmEmail, int alarmThreshold); + String handler_address, String handler_params, String author, String alarmEmail); public ReturnT remove(String jobGroup, String jobName); 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 c86a9bc5..d877cc03 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 @@ -59,8 +59,7 @@ public class XxlJobServiceImpl implements IXxlJobService { @Override public ReturnT add(String jobGroup, String jobCron, String jobDesc, - String executorAddress, String executorParam, - String author, String alarmEmail, int alarmThreshold, + String executorAddress, String executorParam, String author, String alarmEmail, int glueSwitch, String glueSource, String glueRemark) { // valid if (JobGroupEnum.match(jobGroup) == null) { @@ -81,9 +80,6 @@ public class XxlJobServiceImpl implements IXxlJobService { if (StringUtils.isBlank(alarmEmail)) { return new ReturnT(500, "请输入“报警邮件”"); } - if (alarmThreshold < 0) { - alarmThreshold = 0; - } // generate jobName String jobName = FastDateFormat.getInstance("yyyyMMddHHmmssSSSS").format(new Date()); @@ -102,10 +98,8 @@ public class XxlJobServiceImpl implements IXxlJobService { jobInfo.setJobName(jobName); jobInfo.setJobCron(jobCron); jobInfo.setJobDesc(jobDesc); - jobInfo.setJobClass(RemoteHttpJobBean.class.getName()); jobInfo.setAuthor(author); jobInfo.setAlarmEmail(alarmEmail); - jobInfo.setAlarmThreshold(alarmThreshold); jobInfo.setGlueSwitch(glueSwitch); jobInfo.setGlueSource(glueSource); jobInfo.setGlueRemark(glueRemark); @@ -131,7 +125,7 @@ public class XxlJobServiceImpl implements IXxlJobService { @Override public ReturnT reschedule(String jobGroup, String jobName, String jobCron, String jobDesc, String executorAddress, String executorParam, - String author, String alarmEmail, int alarmThreshold) { + String author, String alarmEmail) { // valid if (JobGroupEnum.match(jobGroup) == null) { @@ -161,7 +155,6 @@ public class XxlJobServiceImpl implements IXxlJobService { jobInfo.setJobCron(jobCron); jobInfo.setAuthor(author); jobInfo.setAlarmEmail(alarmEmail); - jobInfo.setAlarmThreshold(alarmThreshold); jobInfo.setExecutorAddress(executorAddress); jobInfo.setExecutorParam(executorParam); diff --git a/xxl-job-admin/src/main/resources/config.properties b/xxl-job-admin/src/main/resources/config.properties index f5df8fbd..703b34e4 100644 --- a/xxl-job-admin/src/main/resources/config.properties +++ b/xxl-job-admin/src/main/resources/config.properties @@ -4,7 +4,7 @@ mail.port=25 mail.username=ovono802302@163.com mail.password=asdfzxcv mail.sendFrom=ovono802302@163.com -mail.sendNick=《任务调度中心xxl-job》 +mail.sendNick=《调度平台平台XXL-JOB》 # for login login.username=admin 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 10b9d005..f58f83bd 100644 --- a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml +++ b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml @@ -10,17 +10,14 @@ - - - @@ -34,14 +31,11 @@ t.job_name, t.job_cron, t.job_desc, - t.job_class, t.add_time, t.update_time, t.author, t.alarm_email, - t.alarm_threshold, t.executor_address, - t.executor_handler, t.executor_param, t.glue_switch, t.glue_source, @@ -82,14 +76,11 @@ job_name, job_cron, job_desc, - job_class, add_time, update_time, author, alarm_email, - alarm_threshold, executor_address, - executor_handler, executor_param, glue_switch, glue_source, @@ -98,15 +89,12 @@ #{jobGroup}, #{jobName}, #{jobCron}, - #{jobDesc}, - #{jobClass}, + #{jobDesc}, NOW(), NOW(), #{author}, #{alarmEmail}, - #{alarmThreshold}, #{executorAddress}, - #{executorHandler}, #{executorParam}, #{glueSwitch}, #{glueSource}, @@ -132,9 +120,7 @@ update_time = NOW(), author = #{author}, alarm_email = #{alarmEmail}, - alarm_threshold = #{alarmThreshold}, executor_address = #{executorAddress}, - executor_handler = #{executorHandler}, executor_param = #{executorParam}, glue_switch = #{glueSwitch}, glue_source = #{glueSource}, diff --git a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml index 9260e047..ed4d4d6e 100644 --- a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml +++ b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml @@ -8,12 +8,8 @@ - - - - @@ -30,11 +26,7 @@ t.id, t.job_group, t.job_name, - t.job_cron, - t.job_desc, - t.job_class, t.executor_address, - t.executor_handler, t.executor_param, t.trigger_time, t.trigger_status, @@ -101,20 +93,12 @@ INSERT INTO XXL_JOB_QRTZ_TRIGGER_LOG ( `job_group`, `job_name`, - `job_cron`, - `job_desc`, - `job_class`, `executor_address`, - `executor_handler`, `executor_param` ) VALUES ( #{jobGroup}, #{jobName}, - #{jobCron}, - #{jobDesc}, - #{jobClass}, #{executorAddress}, - #{executorHandler}, #{executorParam} ); @@ -129,7 +113,6 @@ `trigger_status`= #{triggerStatus}, `trigger_msg`= #{triggerMsg}, `executor_address`= #{executorAddress}, - `executor_handler`= #{executorHandler}, `executor_param`= #{executorParam} WHERE `id`= #{id} 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 d98ff52c..cda6a96c 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 @@ -38,7 +38,7 @@
-
+
分组
-
+
+
+ JobKey + +
+
+
- 名称 + 描述
@@ -75,16 +81,15 @@ id jobGroup jobName - 名称 + JobKey + 描述 Cron - JobBean 执行器地址 任务参数 新增时间 更新时间 负责人 报警邮件 - 报警阀值 GLUE模式 状态 操作 @@ -122,7 +127,7 @@
- +
@@ -134,16 +139,6 @@
- -
-
-
- -
- -
-
-
-
+
+
+ +
+ +
+

@@ -202,7 +203,7 @@ public class DemoJobHandler extends IJobHandler {
- +
@@ -215,21 +216,17 @@ public class DemoJobHandler extends IJobHandler {
- -
+ +
+ +
- -
+ +
-
- -
- -
-

diff --git a/xxl-job-admin/src/main/webapp/WEB-INF/template/joblog/joblog.index.ftl b/xxl-job-admin/src/main/webapp/WEB-INF/template/joblog/joblog.index.ftl index f6befe31..8f13bf39 100644 --- a/xxl-job-admin/src/main/webapp/WEB-INF/template/joblog/joblog.index.ftl +++ b/xxl-job-admin/src/main/webapp/WEB-INF/template/joblog/joblog.index.ftl @@ -78,11 +78,7 @@ id 任务组 任务名 - Cron - 描述 - JobBean 执行器地址 - JobHandler 任务参数 调度时间 调度结果 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 b685c4f5..94e521dd 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 @@ -34,10 +34,10 @@ $(function() { return data; } }, - { "data": 'jobName', "visible" : false}, + { "data": 'jobName', "visible" : false}, + { "data": 'jobKey', "visible" : true}, { "data": 'jobDesc', "visible" : true}, { "data": 'jobCron', "visible" : true}, - { "data": 'jobClass', "visible" : false}, { "data": 'executorAddress', "visible" : false}, { "data": 'executorParam', "visible" : false}, { @@ -56,7 +56,6 @@ $(function() { }, { "data": 'author', "visible" : true}, { "data": 'alarmEmail', "visible" : false}, - { "data": 'alarmThreshold', "visible" : false}, { "data": 'glueSwitch', "visible" : false}, { "data": 'jobStatus', @@ -95,14 +94,13 @@ $(function() { var html = '

'+ ' '+ @@ -225,10 +223,6 @@ $(function() { }, alarmEmail : { required : true - }, - alarmThreshold : { - required : true , - digits:true }, author : { required : true @@ -236,7 +230,7 @@ $(function() { }, messages : { jobDesc : { - required :"请输入“名称”." + required :"请输入“描述”." }, jobCron : { required :"请输入“Cron”." @@ -247,10 +241,6 @@ $(function() { alarmEmail : { required : "请输入“报警邮件”." }, - alarmThreshold : { - required : "请输入“报警阈值”." , - digits:"阀值应该为整数." - }, author : { required : "请输入“负责人”." } @@ -294,26 +284,21 @@ $(function() { // base data $("#updateModal .form input[name='jobGroup']").val($(this).parent('p').attr("jobGroup")); $("#updateModal .form input[name='jobName']").val($(this).parent('p').attr("jobName")); + $("#updateModal .form .jobKey").val( $(this).parent('p').attr("jobKey") ); $("#updateModal .form input[name='jobDesc']").val($(this).parent('p').attr("jobDesc")); $("#updateModal .form input[name='jobCron']").val($(this).parent('p').attr("jobCron")); $("#updateModal .form input[name='executorAddress']").val($(this).parent('p').attr("executorAddress")); $("#updateModal .form input[name='executorParam']").val($(this).parent('p').attr("executorParam")); $("#updateModal .form input[name='author']").val($(this).parent('p').attr("author")); $("#updateModal .form input[name='alarmEmail']").val($(this).parent('p').attr("alarmEmail")); - $("#updateModal .form input[name='alarmThreshold']").val($(this).parent('p').attr("alarmThreshold")); // jobGroupTitle var jobGroupTitle = $("#addModal .form select[name='jobGroup']").find("option[value='" + $(this).parent('p').attr("jobGroup") + "']").text(); $("#updateModal .form .jobGroupTitle").val(jobGroupTitle); - // jobKey - var jobKey = $(this).parent('p').attr("jobGroup") + "_" + $(this).parent('p').attr("jobName"); - $("#updateModal .form .jobKey").val(jobKey); - // glueSwitchTitle $("#updateModal .form .glueSwitchTitle").val( ($(this).parent('p').attr("glueSwitch") == 0)?"BEAN模式":"GLUE模式" ); - // show $('#updateModal').modal({backdrop: false, keyboard: false}).modal('show'); }); @@ -336,17 +321,13 @@ $(function() { alarmEmail : { required : true }, - alarmThreshold : { - required : true , - digits:true - }, author : { required : true } }, messages : { jobDesc : { - required :"请输入“名称”." + required :"请输入“描述”." }, jobCron : { required :"请输入“Cron”." @@ -357,10 +338,6 @@ $(function() { alarmEmail : { required : "请输入“报警邮件”." }, - alarmThreshold : { - required : "请输入“报警阈值”." , - digits:"阀值应该为整数." - }, author : { required : "请输入“负责人”." } diff --git a/xxl-job-admin/src/main/webapp/static/js/joblog.index.1.js b/xxl-job-admin/src/main/webapp/static/js/joblog.index.1.js index 05c5813f..9ad3c6eb 100644 --- a/xxl-job-admin/src/main/webapp/static/js/joblog.index.1.js +++ b/xxl-job-admin/src/main/webapp/static/js/joblog.index.1.js @@ -96,12 +96,7 @@ $(function() { } }, { "data": 'jobName', "visible" : false}, - { "data": 'jobCron', "visible" : false}, - { "data": 'jobDesc', "visible" : false}, - { "data": 'jobClass', "visible" : false}, - { "data": 'executorAddress', "visible" : true}, - { "data": 'executorHandler', "visible" : true}, { "data": 'executorParam', "visible" : true}, { "data": 'triggerTime', diff --git a/xxl-job-admin/src/test/java/com/xxl/job/dao/impl/XxlJobInfoTest.java b/xxl-job-admin/src/test/java/com/xxl/job/dao/impl/XxlJobInfoTest.java index b7cd9fa1..84ac113e 100644 --- a/xxl-job-admin/src/test/java/com/xxl/job/dao/impl/XxlJobInfoTest.java +++ b/xxl-job-admin/src/test/java/com/xxl/job/dao/impl/XxlJobInfoTest.java @@ -33,7 +33,6 @@ public class XxlJobInfoTest { XxlJobInfo info = new XxlJobInfo(); info.setJobName("job_name"); info.setJobCron("jobCron"); - info.setJobClass("jobClass"); int count = xxlJobInfoDao.save(info); System.out.println(count); System.out.println(info.getId()); diff --git a/xxl-job-admin/src/test/java/com/xxl/job/dao/impl/XxlJobLogTest.java b/xxl-job-admin/src/test/java/com/xxl/job/dao/impl/XxlJobLogTest.java index 992a7840..b4ff2fe1 100644 --- a/xxl-job-admin/src/test/java/com/xxl/job/dao/impl/XxlJobLogTest.java +++ b/xxl-job-admin/src/test/java/com/xxl/job/dao/impl/XxlJobLogTest.java @@ -26,8 +26,6 @@ public class XxlJobLogTest { public void save_load(){ XxlJobLog xxlJobLog = new XxlJobLog(); xxlJobLog.setJobName("job_name"); - xxlJobLog.setJobCron("jobCron"); - xxlJobLog.setJobClass("jobClass"); int count = xxlJobLogDao.save(xxlJobLog); System.out.println(count); System.out.println(xxlJobLog.getId()); diff --git a/xxl-job-executor-example/src/main/java/com/xxl/job/executor/service/jobhandler/DemoJobHandler.java b/xxl-job-executor-example/src/main/java/com/xxl/job/executor/service/jobhandler/DemoJobHandler.java index e18643fa..d348671d 100644 --- a/xxl-job-executor-example/src/main/java/com/xxl/job/executor/service/jobhandler/DemoJobHandler.java +++ b/xxl-job-executor-example/src/main/java/com/xxl/job/executor/service/jobhandler/DemoJobHandler.java @@ -20,7 +20,7 @@ import com.xxl.job.core.handler.annotation.JobHander; * * @author xuxueli 2015-12-19 19:43:36 */ -@JobHander(value="defaults_201607192256270689,defaults_201607192256270689") +@JobHander(value="waimai_201607202316260736,waimai_201607202316260736") @Service public class DemoJobHandler extends IJobHandler { private static transient Logger logger = LoggerFactory.getLogger(DemoJobHandler.class);