diff --git a/db/tables_xxl_job.sql b/db/tables_xxl_job.sql index 54bbb80d..5b32c91f 100644 --- a/db/tables_xxl_job.sql +++ b/db/tables_xxl_job.sql @@ -145,9 +145,9 @@ 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_group` int(11) NOT NULL COMMENT '任务组(执行器ID)', `job_name` varchar(255) NOT NULL COMMENT '任务名', `job_cron` varchar(128) NOT NULL COMMENT '任务执行CRON', `job_desc` varchar(255) NOT NULL, @@ -155,8 +155,6 @@ CREATE TABLE `XXL_JOB_QRTZ_TRIGGER_INFO` ( `update_time` datetime DEFAULT NULL, `author` varchar(64) DEFAULT NULL COMMENT '作者', `alarm_email` varchar(255) DEFAULT NULL COMMENT '报警邮件', - `executor_appname` varchar(255) DEFAULT NULL COMMENT '执行器对应的AppName', - `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-是', @@ -167,9 +165,9 @@ CREATE TABLE `XXL_JOB_QRTZ_TRIGGER_INFO` ( ) 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_group` int(11) NOT NULL COMMENT '任务组', `job_name` varchar(255) NOT NULL COMMENT '任务名', `executor_address` varchar(255) DEFAULT NULL COMMENT '执行器地址,本次执行的地址', `executor_handler` varchar(255) DEFAULT NULL COMMENT '执行器任务handler', @@ -185,7 +183,7 @@ CREATE TABLE `XXL_JOB_QRTZ_TRIGGER_LOG` ( CREATE TABLE XXL_JOB_QRTZ_TRIGGER_LOGGLUE ( `id` int(11) NOT NULL AUTO_INCREMENT, - `job_group` varchar(255) NOT NULL, + `job_group` int(11) NOT NULL, `job_name` varchar(255) NOT NULL, `glue_source` text, `glue_remark` varchar(128) NOT NULL, 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 87b59b85..4f91fb6e 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 @@ -1,20 +1,18 @@ package com.xxl.job.admin.controller; -import java.util.List; - -import javax.annotation.Resource; - -import org.apache.commons.lang.StringUtils; -import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; - import com.xxl.job.admin.core.model.ReturnT; import com.xxl.job.admin.core.model.XxlJobInfo; import com.xxl.job.admin.core.model.XxlJobLogGlue; import com.xxl.job.admin.dao.IXxlJobInfoDao; import com.xxl.job.admin.dao.IXxlJobLogGlueDao; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import java.util.List; /** * job code controller @@ -30,7 +28,7 @@ public class JobCodeController { private IXxlJobLogGlueDao xxlJobLogGlueDao; @RequestMapping - public String index(Model model, String jobGroup, String jobName) { + public String index(Model model, int jobGroup, String jobName) { XxlJobInfo jobInfo = xxlJobInfoDao.load(jobGroup, jobName); List jobLogGlues = xxlJobLogGlueDao.selectList(jobGroup, jobName); model.addAttribute("jobInfo", jobInfo); @@ -40,7 +38,7 @@ public class JobCodeController { @RequestMapping("/save") @ResponseBody - public ReturnT save(Model model, String jobGroup, String jobName, String glueSource, String glueRemark) { + public ReturnT save(Model model, int jobGroup, String jobName, String glueSource, String glueRemark) { // valid if (glueRemark==null) { return new ReturnT(500, "请输入备注"); diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobGroupController.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobGroupController.java index 65c41ace..fa92fd04 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobGroupController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobGroupController.java @@ -87,7 +87,7 @@ public class JobGroupController { public ReturnT remove(int id){ // valid - int count = xxlJobInfoDao.pageListCount(0, 10, String.valueOf(id), null); + int count = xxlJobInfoDao.pageListCount(0, 10, id, null); if (count > 0) { return new ReturnT(500, "该分组使用中, 不可删除"); } 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 884e889f..aa14586e 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 @@ -41,7 +41,7 @@ public class JobInfoController { @ResponseBody public Map pageList(@RequestParam(required = false, defaultValue = "0") int start, @RequestParam(required = false, defaultValue = "10") int length, - String jobGroup, String executorHandler, String filterTime) { + int jobGroup, String executorHandler, String filterTime) { return xxlJobService.pageList(start, length, jobGroup, executorHandler, filterTime); } @@ -69,25 +69,25 @@ public class JobInfoController { @RequestMapping("/remove") @ResponseBody - public ReturnT remove(String jobGroup, String jobName) { + public ReturnT remove(int jobGroup, String jobName) { return xxlJobService.remove(jobGroup, jobName); } @RequestMapping("/pause") @ResponseBody - public ReturnT pause(String jobGroup, String jobName) { + public ReturnT pause(int jobGroup, String jobName) { return xxlJobService.pause(jobGroup, jobName); } @RequestMapping("/resume") @ResponseBody - public ReturnT resume(String jobGroup, String jobName) { + public ReturnT resume(int jobGroup, String jobName) { return xxlJobService.resume(jobGroup, jobName); } @RequestMapping("/trigger") @ResponseBody - public ReturnT triggerJob(String jobGroup, String jobName) { + public ReturnT triggerJob(int jobGroup, String jobName) { return xxlJobService.triggerJob(jobGroup, jobName); } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java index f36d40f1..10cc66d1 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java @@ -65,7 +65,7 @@ public class JobLogController { @ResponseBody public Map pageList(@RequestParam(required = false, defaultValue = "0") int start, @RequestParam(required = false, defaultValue = "10") int length, - String jobGroup, String jobName, String filterTime) { + int jobGroup, String jobName, String filterTime) { // parse param Date triggerTimeStart = null; @@ -161,7 +161,7 @@ public class JobLogController { RequestModel requestModel = new RequestModel(); requestModel.setTimestamp(System.currentTimeMillis()); requestModel.setAction(ActionRepository.KILL.name()); - requestModel.setJobGroup(log.getJobGroup()); + requestModel.setJobGroup(String.valueOf(log.getJobGroup())); requestModel.setJobName(log.getJobName()); ResponseModel responseModel = XxlJobNetCommUtil.postHex(XxlJobNetCommUtil.addressToUrl(log.getExecutorAddress()), requestModel); diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServerHandler.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServerHandler.java index efc44eb3..846f0433 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServerHandler.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServerHandler.java @@ -77,10 +77,10 @@ public class XxlJobLogCallbackServerHandler extends AbstractHandler { for (int i = 0; i < childJobKeys.length; i++) { String[] jobKeyArr = childJobKeys[i].split("_"); if (jobKeyArr!=null && jobKeyArr.length==2) { - XxlJobInfo childJobInfo = DynamicSchedulerUtil.xxlJobInfoDao.load(jobKeyArr[0], jobKeyArr[1]); + XxlJobInfo childJobInfo = DynamicSchedulerUtil.xxlJobInfoDao.load(Integer.valueOf(jobKeyArr[0]), jobKeyArr[1]); if (childJobInfo!=null) { try { - boolean ret = DynamicSchedulerUtil.triggerJob(childJobInfo.getJobName(), childJobInfo.getJobGroup()); + boolean ret = DynamicSchedulerUtil.triggerJob(childJobInfo.getJobName(), String.valueOf(childJobInfo.getJobGroup())); // add msg childTriggerMsg += MessageFormat.format("
{0}/{1} 触发子任务成功, 子任务Key: {2}, status: {3}, 子任务描述: {4}", 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 b6fa2875..a632de90 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 @@ -37,7 +37,7 @@ public class RemoteHttpJobBean extends QuartzJobBean { throws JobExecutionException { JobKey jobKey = context.getTrigger().getJobKey(); - XxlJobInfo jobInfo = DynamicSchedulerUtil.xxlJobInfoDao.load(jobKey.getGroup(), jobKey.getName()); + XxlJobInfo jobInfo = DynamicSchedulerUtil.xxlJobInfoDao.load(Integer.valueOf(jobKey.getGroup()), jobKey.getName()); // save log XxlJobLog jobLog = new XxlJobLog(); jobLog.setJobGroup(jobInfo.getJobGroup()); @@ -57,7 +57,7 @@ public class RemoteHttpJobBean extends QuartzJobBean { RequestModel requestModel = new RequestModel(); requestModel.setTimestamp(System.currentTimeMillis()); requestModel.setAction(ActionRepository.RUN.name()); - requestModel.setJobGroup(jobInfo.getJobGroup()); + requestModel.setJobGroup(String.valueOf(jobInfo.getJobGroup())); requestModel.setJobName(jobInfo.getJobName()); requestModel.setExecutorHandler(jobInfo.getExecutorHandler()); requestModel.setExecutorParams(jobInfo.getExecutorParam()); @@ -67,17 +67,9 @@ public class RemoteHttpJobBean extends QuartzJobBean { // parse address List addressList = new ArrayList(); - String parseAddressMsg = null; - if (StringUtils.isNotBlank(jobInfo.getExecutorAddress())) { - List addressArr = Arrays.asList(jobInfo.getExecutorAddress().split(",")); - addressList.addAll(addressArr); - parseAddressMsg = MessageFormat.format("Parse Address (地址配置方式)
>>>[address list] : {0}

", addressList); - } else { - XxlJobGroup group = DynamicSchedulerUtil.xxlJobGroupDao.load(Integer.valueOf(jobInfo.getJobGroup())); - if (group!=null) { - addressList = JobRegistryHelper.discover(RegistHelper.RegistType.EXECUTOR.name(), group.getAppName()); - } - parseAddressMsg = MessageFormat.format("Parse Address (Appname注册方式)
>>>[address list] : {0}

", addressList); + XxlJobGroup group = DynamicSchedulerUtil.xxlJobGroupDao.load(Integer.valueOf(jobInfo.getJobGroup())); + if (group!=null) { + addressList = JobRegistryHelper.discover(RegistHelper.RegistType.EXECUTOR.name(), group.getAppName()); } // failover trigger @@ -89,7 +81,7 @@ public class RemoteHttpJobBean extends QuartzJobBean { // update trigger info jobLog.setTriggerTime(new Date()); jobLog.setTriggerStatus(responseModel.getStatus()); - jobLog.setTriggerMsg(parseAddressMsg + responseModel.getMsg()); + jobLog.setTriggerMsg(responseModel.getMsg()); DynamicSchedulerUtil.xxlJobLogDao.updateTriggerInfo(jobLog); // monitor triger @@ -107,7 +99,7 @@ public class RemoteHttpJobBean extends QuartzJobBean { if (addressList==null || addressList.size() < 1) { ResponseModel result = new ResponseModel(); result.setStatus(ResponseModel.FAIL); - result.setMsg( "Trigger error,
>>>address list is null

" ); + result.setMsg( "Trigger error,
>>>[address] is null

" ); return result; } else if (addressList.size() == 1) { String address = addressList.get(0); 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 0ebfa6a6..ce8fc2a2 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 @@ -10,7 +10,7 @@ public class XxlJobInfo { private int id; - private String jobGroup; // 任务组 + private int jobGroup; // 任务组 (执行器ID) private String jobName; // 任务名 private String jobCron; // 任务执行CRON表达式 【base on quartz】 private String jobDesc; @@ -21,7 +21,6 @@ public class XxlJobInfo { private String author; // 负责人 private String alarmEmail; // 报警邮件 - private String executorAddress; // 执行器地址,有多个则逗号分隔 private String executorHandler; // 执行器,任务Handler名称 private String executorParam; // 执行器,任务参数 @@ -42,11 +41,11 @@ public class XxlJobInfo { this.id = id; } - public String getJobGroup() { + public int getJobGroup() { return jobGroup; } - public void setJobGroup(String jobGroup) { + public void setJobGroup(int jobGroup) { this.jobGroup = jobGroup; } @@ -106,14 +105,6 @@ public class XxlJobInfo { this.alarmEmail = alarmEmail; } - public String getExecutorAddress() { - return executorAddress; - } - - public void setExecutorAddress(String executorAddress) { - this.executorAddress = executorAddress; - } - public String getExecutorHandler() { return executorHandler; } 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 5e58923f..0194744d 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 @@ -11,7 +11,7 @@ public class XxlJobLog { private int id; // job info - private String jobGroup; + private int jobGroup; private String jobName; private String executorAddress; // 执行器地址,有多个则逗号分隔 @@ -34,10 +34,10 @@ public class XxlJobLog { public void setId(int id) { this.id = id; } - public String getJobGroup() { + public int getJobGroup() { return jobGroup; } - public void setJobGroup(String jobGroup) { + public void setJobGroup(int jobGroup) { this.jobGroup = jobGroup; } public String getJobName() { 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 1f1d136f..0c376bd7 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,7 +8,7 @@ public class XxlJobLogGlue { private int id; - private String jobGroup; + private int jobGroup; private String jobName; private String glueSource; @@ -22,10 +22,10 @@ public class XxlJobLogGlue { public void setId(int id) { this.id = id; } - public String getJobGroup() { + public int getJobGroup() { return jobGroup; } - public void setJobGroup(String jobGroup) { + public void setJobGroup(int jobGroup) { this.jobGroup = jobGroup; } public String getJobName() { 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 d04d58d1..1c3c5bb4 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 @@ -120,8 +120,8 @@ public final class DynamicSchedulerUtil implements ApplicationContextAware, Init // fill job info public static void fillJobInfo(XxlJobInfo jobInfo) { // TriggerKey : name + group - TriggerKey triggerKey = TriggerKey.triggerKey(jobInfo.getJobName(), jobInfo.getJobGroup()); - JobKey jobKey = new JobKey(jobInfo.getJobName(), jobInfo.getJobGroup()); + TriggerKey triggerKey = TriggerKey.triggerKey(jobInfo.getJobName(), String.valueOf(jobInfo.getJobGroup())); + try { Trigger trigger = scheduler.getTrigger(triggerKey); @@ -133,6 +133,7 @@ public final class DynamicSchedulerUtil implements ApplicationContextAware, Init jobInfo.setJobCron(cronExpression); } + //JobKey jobKey = new JobKey(jobInfo.getJobName(), String.valueOf(jobInfo.getJobGroup())); //JobDetail jobDetail = scheduler.getJobDetail(jobKey); //String jobClass = jobDetail.getJobClass().getName(); @@ -153,19 +154,19 @@ public final class DynamicSchedulerUtil implements ApplicationContextAware, Init // addJob 新增 @SuppressWarnings("unchecked") - public static boolean addJob(XxlJobInfo jobInfo) throws SchedulerException { + public static boolean addJob(String jobGroup, String jobName, String cronExpression) throws SchedulerException { // TriggerKey : name + group - TriggerKey triggerKey = TriggerKey.triggerKey(jobInfo.getJobName(), jobInfo.getJobGroup()); - JobKey jobKey = new JobKey(jobInfo.getJobName(), jobInfo.getJobGroup()); + TriggerKey triggerKey = TriggerKey.triggerKey(jobName, jobGroup); + JobKey jobKey = new JobKey(jobName, jobGroup); // TriggerKey valid if_exists - if (checkExists(jobInfo.getJobName(), jobInfo.getJobGroup())) { - logger.info(">>>>>>>>> addJob fail, job already exist, jobInfo:{}", jobInfo); + if (checkExists(jobName, jobGroup)) { + logger.info(">>>>>>>>> addJob fail, job already exist, jobGroup:{}, jobName:{}", jobGroup, jobName); return false; } // CronTrigger : TriggerKey + cronExpression // withMisfireHandlingInstructionDoNothing 忽略掉调度终止过程中忽略的调度 - CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(jobInfo.getJobCron()).withMisfireHandlingInstructionDoNothing(); + CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(cronExpression).withMisfireHandlingInstructionDoNothing(); CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).withSchedule(cronScheduleBuilder).build(); // JobDetail : jobClass @@ -186,20 +187,20 @@ public final class DynamicSchedulerUtil implements ApplicationContextAware, Init } // reschedule - public static boolean rescheduleJob(XxlJobInfo jobInfo) throws SchedulerException { + public static boolean rescheduleJob(String jobGroup, String jobName, String cronExpression) throws SchedulerException { // TriggerKey valid if_exists - if (!checkExists(jobInfo.getJobName(), jobInfo.getJobGroup())) { - logger.info(">>>>>>>>>>> rescheduleJob fail, job not exists, jobInfo:{}", jobInfo); + if (!checkExists(jobName, jobGroup)) { + logger.info(">>>>>>>>>>> rescheduleJob fail, job not exists, JobGroup:{}, JobName:{}", jobGroup, jobName); return false; } // TriggerKey : name + group - TriggerKey triggerKey = TriggerKey.triggerKey(jobInfo.getJobName(), jobInfo.getJobGroup()); - JobKey jobKey = new JobKey(jobInfo.getJobName(), jobInfo.getJobGroup()); + TriggerKey triggerKey = TriggerKey.triggerKey(jobName, jobGroup); + JobKey jobKey = new JobKey(jobName, jobGroup); // CronTrigger : TriggerKey + cronExpression - CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(jobInfo.getJobCron()).withMisfireHandlingInstructionDoNothing(); + CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(cronExpression).withMisfireHandlingInstructionDoNothing(); CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).withSchedule(cronScheduleBuilder).build(); //scheduler.rescheduleJob(triggerKey, cronTrigger); @@ -215,7 +216,7 @@ public final class DynamicSchedulerUtil implements ApplicationContextAware, Init triggerSet.add(cronTrigger); scheduler.scheduleJob(jobDetail, triggerSet, true); - logger.info(">>>>>>>>>>> resumeJob success, JobGroup:{}, JobName:{}", jobInfo.getJobGroup(), jobInfo.getJobName()); + logger.info(">>>>>>>>>>> resumeJob success, JobGroup:{}, JobName:{}", jobGroup, jobName); return true; } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/IXxlJobInfoDao.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/IXxlJobInfoDao.java index 13d9c63d..2ebaf912 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/IXxlJobInfoDao.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/IXxlJobInfoDao.java @@ -1,10 +1,10 @@ package com.xxl.job.admin.dao; -import java.util.List; - import com.xxl.job.admin.core.model.XxlJobInfo; import com.xxl.job.admin.core.model.XxlJobLog; +import java.util.List; + /** * job info @@ -12,16 +12,16 @@ import com.xxl.job.admin.core.model.XxlJobLog; */ public interface IXxlJobInfoDao { - public List pageList(int offset, int pagesize, String jobGroup, String executorHandler); - public int pageListCount(int offset, int pagesize, String jobGroup, String executorHandler); + public List pageList(int offset, int pagesize, int jobGroup, String executorHandler); + public int pageListCount(int offset, int pagesize, int jobGroup, String executorHandler); public int save(XxlJobInfo info); - public XxlJobInfo load(String jobGroup, String jobName); + public XxlJobInfo load(int jobGroup, String jobName); public int update(XxlJobInfo item); - public int delete(String jobGroup, String jobName); + public int delete(int jobGroup, String jobName); public List getJobsByGroup(String jobGroup); } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/IXxlJobLogDao.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/IXxlJobLogDao.java index 0791ad05..a3e6b9b7 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/IXxlJobLogDao.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/IXxlJobLogDao.java @@ -1,26 +1,25 @@ package com.xxl.job.admin.dao; +import com.xxl.job.admin.core.model.XxlJobLog; + import java.util.Date; import java.util.List; -import com.xxl.job.admin.core.model.XxlJobLog; - /** * job log * @author xuxueli 2016-1-12 18:03:06 */ public interface IXxlJobLogDao { - public List pageList(int offset, int pagesize, String jobGroup, String jobName, Date triggerTimeStart, Date triggerTimeEnd); - public int pageListCount(int offset, int pagesize, String jobGroup, String jobName, Date triggerTimeStart, Date triggerTimeEnd); + public List pageList(int offset, int pagesize, int jobGroup, String jobName, Date triggerTimeStart, Date triggerTimeEnd); + public int pageListCount(int offset, int pagesize, int jobGroup, String jobName, Date triggerTimeStart, Date triggerTimeEnd); public XxlJobLog load(int id); - public XxlJobLog loadByGroupAndName(String jobGroup, String jobName); - + public int save(XxlJobLog xxlJobLog); public int updateTriggerInfo(XxlJobLog xxlJobLog); public int updateHandleInfo(XxlJobLog xxlJobLog); - public int delete(String jobGroup, String jobName); + public int delete(int jobGroup, String jobName); } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/IXxlJobLogGlueDao.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/IXxlJobLogGlueDao.java index 8b556446..2813b088 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/IXxlJobLogGlueDao.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/IXxlJobLogGlueDao.java @@ -1,9 +1,9 @@ package com.xxl.job.admin.dao; -import java.util.List; - import com.xxl.job.admin.core.model.XxlJobLogGlue; +import java.util.List; + /** * job log for glue * @author xuxueli 2016-5-19 18:04:56 @@ -12,10 +12,10 @@ public interface IXxlJobLogGlueDao { public int save(XxlJobLogGlue xxlJobLogGlue); - public List selectList(String jobGroup, String jobName); + public List selectList(int jobGroup, String jobName); - public int removeOld(String jobGroup, String jobName, int limit); + public int removeOld(int jobGroup, String jobName, int limit); - public int delete(String jobGroup, String jobName); + public int delete(int jobGroup, String jobName); } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/impl/XxlJobInfoDaoImpl.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/impl/XxlJobInfoDaoImpl.java index a5397e4b..596f26a7 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/impl/XxlJobInfoDaoImpl.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/impl/XxlJobInfoDaoImpl.java @@ -1,16 +1,14 @@ package com.xxl.job.admin.dao.impl; -import java.util.HashMap; -import java.util.List; - -import javax.annotation.Resource; - +import com.xxl.job.admin.core.model.XxlJobInfo; import com.xxl.job.admin.core.model.XxlJobLog; +import com.xxl.job.admin.dao.IXxlJobInfoDao; import org.mybatis.spring.SqlSessionTemplate; import org.springframework.stereotype.Repository; -import com.xxl.job.admin.core.model.XxlJobInfo; -import com.xxl.job.admin.dao.IXxlJobInfoDao; +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; /** * job info @@ -23,7 +21,7 @@ public class XxlJobInfoDaoImpl implements IXxlJobInfoDao { public SqlSessionTemplate sqlSessionTemplate; @Override - public List pageList(int offset, int pagesize, String jobGroup, String executorHandler) { + public List pageList(int offset, int pagesize, int jobGroup, String executorHandler) { HashMap params = new HashMap(); params.put("offset", offset); params.put("pagesize", pagesize); @@ -34,7 +32,7 @@ public class XxlJobInfoDaoImpl implements IXxlJobInfoDao { } @Override - public int pageListCount(int offset, int pagesize, String jobGroup, String executorHandler) { + public int pageListCount(int offset, int pagesize, int jobGroup, String executorHandler) { HashMap params = new HashMap(); params.put("offset", offset); params.put("pagesize", pagesize); @@ -50,7 +48,7 @@ public class XxlJobInfoDaoImpl implements IXxlJobInfoDao { } @Override - public XxlJobInfo load(String jobGroup, String jobName) { + public XxlJobInfo load(int jobGroup, String jobName) { HashMap params = new HashMap(); params.put("jobGroup", jobGroup); params.put("jobName", jobName); @@ -64,7 +62,7 @@ public class XxlJobInfoDaoImpl implements IXxlJobInfoDao { } @Override - public int delete(String jobGroup, String jobName) { + public int delete(int jobGroup, String jobName) { HashMap params = new HashMap(); params.put("jobGroup", jobGroup); params.put("jobName", jobName); diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/impl/XxlJobLogDaoImpl.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/impl/XxlJobLogDaoImpl.java index afc08d87..fd024ffd 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/impl/XxlJobLogDaoImpl.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/impl/XxlJobLogDaoImpl.java @@ -1,16 +1,14 @@ package com.xxl.job.admin.dao.impl; -import java.util.Date; -import java.util.HashMap; -import java.util.List; - -import javax.annotation.Resource; - -import org.mybatis.spring.SqlSessionTemplate; -import org.springframework.stereotype.Repository; - import com.xxl.job.admin.core.model.XxlJobLog; import com.xxl.job.admin.dao.IXxlJobLogDao; +import org.mybatis.spring.SqlSessionTemplate; +import org.springframework.stereotype.Repository; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.HashMap; +import java.util.List; /** * job log @@ -23,7 +21,7 @@ public class XxlJobLogDaoImpl implements IXxlJobLogDao { public SqlSessionTemplate sqlSessionTemplate; @Override - public List pageList(int offset, int pagesize, String jobGroup, String jobName, Date triggerTimeStart, Date triggerTimeEnd) { + public List pageList(int offset, int pagesize, int jobGroup, String jobName, Date triggerTimeStart, Date triggerTimeEnd) { HashMap params = new HashMap(); params.put("offset", offset); params.put("pagesize", pagesize); @@ -36,7 +34,7 @@ public class XxlJobLogDaoImpl implements IXxlJobLogDao { } @Override - public int pageListCount(int offset, int pagesize, String jobGroup, String jobName, Date triggerTimeStart, Date triggerTimeEnd) { + public int pageListCount(int offset, int pagesize, int jobGroup, String jobName, Date triggerTimeStart, Date triggerTimeEnd) { HashMap params = new HashMap(); params.put("offset", offset); params.put("pagesize", pagesize); @@ -52,14 +50,6 @@ public class XxlJobLogDaoImpl implements IXxlJobLogDao { public XxlJobLog load(int id) { return sqlSessionTemplate.selectOne("XxlJobLogMapper.load", id); } - - @Override - public XxlJobLog loadByGroupAndName(String jobGroup, String jobName) { - HashMap params = new HashMap(); - params.put("jobGroup", jobGroup); - params.put("jobName", jobName); - return sqlSessionTemplate.selectOne("XxlJobLogMapper.loadByGroupAndName", params); - } @Override public int save(XxlJobLog xxlJobLog) { @@ -83,7 +73,7 @@ public class XxlJobLogDaoImpl implements IXxlJobLogDao { } @Override - public int delete(String jobGroup, String jobName) { + public int delete(int jobGroup, String jobName) { HashMap params = new HashMap(); params.put("jobGroup", jobGroup); params.put("jobName", jobName); diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/impl/XxlJobLogGlueDaoImpl.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/impl/XxlJobLogGlueDaoImpl.java index a1506b86..4214a71f 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/impl/XxlJobLogGlueDaoImpl.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/impl/XxlJobLogGlueDaoImpl.java @@ -1,15 +1,13 @@ package com.xxl.job.admin.dao.impl; -import java.util.HashMap; -import java.util.List; - -import javax.annotation.Resource; - -import org.mybatis.spring.SqlSessionTemplate; -import org.springframework.stereotype.Repository; - import com.xxl.job.admin.core.model.XxlJobLogGlue; import com.xxl.job.admin.dao.IXxlJobLogGlueDao; +import org.mybatis.spring.SqlSessionTemplate; +import org.springframework.stereotype.Repository; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; /** * job log for glue @@ -27,7 +25,7 @@ public class XxlJobLogGlueDaoImpl implements IXxlJobLogGlueDao { } @Override - public List selectList(String jobGroup, String jobName) { + public List selectList(int jobGroup, String jobName) { HashMap params = new HashMap(); params.put("jobGroup", jobGroup); params.put("jobName", jobName); @@ -35,7 +33,7 @@ public class XxlJobLogGlueDaoImpl implements IXxlJobLogGlueDao { } @Override - public int removeOld(String jobGroup, String jobName, int limit) { + public int removeOld(int jobGroup, String jobName, int limit) { HashMap params = new HashMap(); params.put("jobGroup", jobGroup); params.put("jobName", jobName); @@ -44,7 +42,7 @@ public class XxlJobLogGlueDaoImpl implements IXxlJobLogGlueDao { } @Override - public int delete(String jobGroup, String jobName) { + public int delete(int jobGroup, String jobName) { HashMap params = new HashMap(); params.put("jobGroup", jobGroup); params.put("jobName", jobName); 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 084d99bd..ac320776 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 @@ -11,7 +11,7 @@ import java.util.Map; */ public interface IXxlJobService { - public Map pageList(int start, int length, String jobGroup, String executorHandler, String filterTime); + public Map pageList(int start, int length, int jobGroup, String executorHandler, String filterTime); public ReturnT add(int jobGroup, String jobCron, String jobDesc,String author, String alarmEmail, String executorAddress, String executorHandler, String executorParam, @@ -20,12 +20,12 @@ public interface IXxlJobService { public ReturnT reschedule(int jobGroup, String jobName, String jobCron, String jobDesc, String author, String alarmEmail, String executorAddress, String executorHandler, String executorParam, int glueSwitch, String childJobKey); - public ReturnT remove(String jobGroup, String jobName); + public ReturnT remove(int jobGroup, String jobName); - public ReturnT pause(String jobGroup, String jobName); + public ReturnT pause(int jobGroup, String jobName); - public ReturnT resume(String jobGroup, String jobName); + public ReturnT resume(int jobGroup, String jobName); - public ReturnT triggerJob(String jobGroup, String jobName); + public ReturnT triggerJob(int 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 41a07624..197845ab 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 @@ -42,7 +42,7 @@ public class XxlJobServiceImpl implements IXxlJobService { private IXxlJobLogGlueDao xxlJobLogGlueDao; @Override - public Map pageList(int start, int length, String jobGroup, String executorHandler, String filterTime) { + public Map pageList(int start, int length, int jobGroup, String executorHandler, String filterTime) { // page list List list = xxlJobInfoDao.pageList(start, length, jobGroup, executorHandler); @@ -96,7 +96,7 @@ public class XxlJobServiceImpl implements IXxlJobService { if (childJobKeyArr.length!=2) { return new ReturnT(500, MessageFormat.format("子任务Key({0})格式错误", childJobKeyItem)); } - XxlJobInfo childJobInfo = xxlJobInfoDao.load(childJobKeyArr[0], childJobKeyArr[1]); + XxlJobInfo childJobInfo = xxlJobInfoDao.load(Integer.valueOf(childJobKeyArr[0]), childJobKeyArr[1]); if (childJobInfo==null) { return new ReturnT(500, MessageFormat.format("子任务Key({0})无效", childJobKeyItem)); } @@ -116,13 +116,12 @@ public class XxlJobServiceImpl implements IXxlJobService { // Backup to the database XxlJobInfo jobInfo = new XxlJobInfo(); - jobInfo.setJobGroup(String.valueOf(jobGroup)); + jobInfo.setJobGroup(jobGroup); jobInfo.setJobName(jobName); jobInfo.setJobCron(jobCron); jobInfo.setJobDesc(jobDesc); jobInfo.setAuthor(author); jobInfo.setAlarmEmail(alarmEmail); - jobInfo.setExecutorAddress(executorAddress); jobInfo.setExecutorHandler(executorHandler); jobInfo.setExecutorParam(executorParam); jobInfo.setGlueSwitch(glueSwitch); @@ -132,7 +131,7 @@ public class XxlJobServiceImpl implements IXxlJobService { try { // add job 2 quartz - boolean result = DynamicSchedulerUtil.addJob(jobInfo); + boolean result = DynamicSchedulerUtil.addJob(String.valueOf(jobGroup), jobName, jobCron); if (result) { xxlJobInfoDao.save(jobInfo); return ReturnT.SUCCESS; @@ -181,7 +180,7 @@ public class XxlJobServiceImpl implements IXxlJobService { if (childJobKeyArr.length!=2) { return new ReturnT(500, MessageFormat.format("子任务Key({0})格式错误", childJobKeyItem)); } - XxlJobInfo childJobInfo = xxlJobInfoDao.load(childJobKeyArr[0], childJobKeyArr[1]); + XxlJobInfo childJobInfo = xxlJobInfoDao.load(Integer.valueOf(childJobKeyArr[0]), childJobKeyArr[1]); if (childJobInfo==null) { return new ReturnT(500, MessageFormat.format("子任务Key({0})无效", childJobKeyItem)); } @@ -189,12 +188,11 @@ public class XxlJobServiceImpl implements IXxlJobService { } // stage job info - XxlJobInfo jobInfo = xxlJobInfoDao.load(String.valueOf(jobGroup), jobName); + XxlJobInfo jobInfo = xxlJobInfoDao.load(jobGroup, jobName); jobInfo.setJobCron(jobCron); jobInfo.setJobDesc(jobDesc); jobInfo.setAuthor(author); jobInfo.setAlarmEmail(alarmEmail); - jobInfo.setExecutorAddress(executorAddress); jobInfo.setExecutorHandler(executorHandler); jobInfo.setExecutorParam(executorParam); jobInfo.setGlueSwitch(glueSwitch); @@ -202,7 +200,7 @@ public class XxlJobServiceImpl implements IXxlJobService { try { // fresh quartz - boolean ret = DynamicSchedulerUtil.rescheduleJob(jobInfo); + boolean ret = DynamicSchedulerUtil.rescheduleJob(String.valueOf(jobGroup), jobName, jobCron); if (ret) { xxlJobInfoDao.update(jobInfo); return ReturnT.SUCCESS; @@ -216,9 +214,9 @@ public class XxlJobServiceImpl implements IXxlJobService { } @Override - public ReturnT remove(String jobGroup, String jobName) { + public ReturnT remove(int jobGroup, String jobName) { try { - DynamicSchedulerUtil.removeJob(jobName, jobGroup); + DynamicSchedulerUtil.removeJob(jobName, String.valueOf(jobGroup)); xxlJobInfoDao.delete(jobGroup, jobName); xxlJobLogDao.delete(jobGroup, jobName); xxlJobLogGlueDao.delete(jobGroup, jobName); @@ -230,9 +228,9 @@ public class XxlJobServiceImpl implements IXxlJobService { } @Override - public ReturnT pause(String jobGroup, String jobName) { + public ReturnT pause(int jobGroup, String jobName) { try { - DynamicSchedulerUtil.pauseJob(jobName, jobGroup); // jobStatus do not store + DynamicSchedulerUtil.pauseJob(jobName, String.valueOf(jobGroup)); // jobStatus do not store return ReturnT.SUCCESS; } catch (SchedulerException e) { e.printStackTrace(); @@ -241,9 +239,9 @@ public class XxlJobServiceImpl implements IXxlJobService { } @Override - public ReturnT resume(String jobGroup, String jobName) { + public ReturnT resume(int jobGroup, String jobName) { try { - DynamicSchedulerUtil.resumeJob(jobName, jobGroup); + DynamicSchedulerUtil.resumeJob(jobName, String.valueOf(jobGroup)); return ReturnT.SUCCESS; } catch (SchedulerException e) { e.printStackTrace(); @@ -252,9 +250,9 @@ public class XxlJobServiceImpl implements IXxlJobService { } @Override - public ReturnT triggerJob(String jobGroup, String jobName) { + public ReturnT triggerJob(int jobGroup, String jobName) { try { - DynamicSchedulerUtil.triggerJob(jobName, jobGroup); + DynamicSchedulerUtil.triggerJob(jobName, String.valueOf(jobGroup)); return ReturnT.SUCCESS; } catch (SchedulerException e) { e.printStackTrace(); 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 6030201f..ce65b40b 100644 --- a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml +++ b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml @@ -17,7 +17,6 @@ - @@ -38,7 +37,6 @@ t.update_time, t.author, t.alarm_email, - t.executor_address, t.executor_handler, t.executor_param, t.glue_switch, @@ -51,7 +49,7 @@ SELECT FROM XXL_JOB_QRTZ_TRIGGER_INFO AS t - + AND t.job_group = #{jobGroup} @@ -66,7 +64,7 @@ SELECT count(1) FROM XXL_JOB_QRTZ_TRIGGER_INFO AS t - + AND t.job_group = #{jobGroup} @@ -85,7 +83,6 @@ update_time, author, alarm_email, - executor_address, executor_handler, executor_param, glue_switch, @@ -101,7 +98,6 @@ NOW(), #{author}, #{alarmEmail}, - #{executorAddress}, #{executorHandler}, #{executorParam}, #{glueSwitch}, @@ -129,7 +125,6 @@ update_time = NOW(), author = #{author}, alarm_email = #{alarmEmail}, - executor_address = #{executorAddress}, executor_handler = #{executorHandler}, executor_param = #{executorParam}, glue_switch = #{glueSwitch}, @@ -140,7 +135,7 @@ AND job_name = #{jobName} - + DELETE FROM XXL_JOB_QRTZ_TRIGGER_INFO 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 8e3b5099..f265cd49 100644 --- a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogGlueMapper.xml +++ b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogGlueMapper.xml @@ -48,7 +48,7 @@ SELECT FROM XXL_JOB_QRTZ_TRIGGER_LOGGLUE AS t - + AND t.job_group = #{jobGroup} 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 5337564f..260bfe47 100644 --- a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml +++ b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml @@ -83,13 +83,7 @@ FROM XXL_JOB_QRTZ_TRIGGER_LOG AS t WHERE t.id = #{id} - - + INSERT INTO XXL_JOB_QRTZ_TRIGGER_LOG ( diff --git a/xxl-job-admin/src/main/webapp/WEB-INF/template/jobgroup/jobgroup.index.ftl b/xxl-job-admin/src/main/webapp/WEB-INF/template/jobgroup/jobgroup.index.ftl index 7a9a4ee8..08fe335e 100644 --- a/xxl-job-admin/src/main/webapp/WEB-INF/template/jobgroup/jobgroup.index.ftl +++ b/xxl-job-admin/src/main/webapp/WEB-INF/template/jobgroup/jobgroup.index.ftl @@ -41,7 +41,7 @@ AppName 名称 排序 - OnLine + OnLine 机器 操作 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 374e8913..85467826 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 @@ -78,7 +78,6 @@ 任务Key 描述 Cron - 执行器地址 JobJandler 任务参数 新增时间 @@ -122,21 +121,10 @@ - +
- -
-
- - AUTO  -
-
- -
-
-
@@ -148,16 +136,18 @@
+
+ +
+ +
+
-
- -
-

@@ -206,20 +196,9 @@ public class DemoGlueJobHandler extends IJobHandler {
- +
-
- -
-
- - AUTO  -
-
- -
-
@@ -231,6 +210,12 @@ public class DemoGlueJobHandler extends IJobHandler {
+
+
+ +
+ +
@@ -238,10 +223,6 @@ public class DemoGlueJobHandler extends IJobHandler {
-
- -
-

@@ -250,9 +231,6 @@ public class DemoGlueJobHandler 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 308ecbab..7b2981ae 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 @@ -36,7 +36,7 @@
执行器