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 2e53e3759104aaddc9888b2c91f4f2621137d452..b9a337be6ee4871c5f7dce7e686e8c24ceeecd91 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 @@ -105,11 +105,27 @@ public class XxlJobServiceImpl implements IXxlJobService { // add in db xxlJobInfoDao.save(jobInfo); - int jobId = jobInfo.getId(); - if (jobId < 1) { + if (jobInfo.getId() < 1) { return new ReturnT(500, "新增任务失败"); } - return ReturnT.SUCCESS; + + // add in quartz + String qz_group = String.valueOf(jobInfo.getJobGroup()); + String qz_name = String.valueOf(jobInfo.getId()); + try { + XxlJobDynamicScheduler.addJob(qz_name, qz_group, jobInfo.getJobCron()); + XxlJobDynamicScheduler.pauseJob(qz_name, qz_group); + return ReturnT.SUCCESS; + } catch (SchedulerException e) { + logger.error("", e); + try { + xxlJobInfoDao.delete(jobInfo.getId()); + XxlJobDynamicScheduler.removeJob(qz_name, qz_group); + } catch (SchedulerException e1) { + logger.error("", e1); + } + return new ReturnT(500, "新增任务失败:" + e.getMessage()); + } } @Override @@ -206,8 +222,8 @@ public class XxlJobServiceImpl implements IXxlJobService { String name = String.valueOf(xxlJobInfo.getId()); try { - XxlJobDynamicScheduler.pauseJob(name, group); // jobStatus do not store - return ReturnT.SUCCESS; + boolean ret = XxlJobDynamicScheduler.pauseJob(name, group); // jobStatus do not store + return ret?ReturnT.SUCCESS:ReturnT.FAIL; } catch (SchedulerException e) { e.printStackTrace(); return ReturnT.FAIL; @@ -221,12 +237,7 @@ public class XxlJobServiceImpl implements IXxlJobService { String name = String.valueOf(xxlJobInfo.getId()); try { - boolean ret = false; - if (XxlJobDynamicScheduler.checkExists(name, group)) { - ret = XxlJobDynamicScheduler.resumeJob(name, group); - } else { - ret = XxlJobDynamicScheduler.addJob(name, group, xxlJobInfo.getJobCron()); - } + boolean ret = XxlJobDynamicScheduler.resumeJob(name, group); return ret?ReturnT.SUCCESS:ReturnT.FAIL; } catch (SchedulerException e) { e.printStackTrace(); 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 a2062067ece28985e438b0974b30708fd6519c99..e284ea9547126b41a62830593af81ac5bbba33cb 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 @@ -75,7 +75,7 @@ $(function() { "render": function ( data, type, row ) { if ('NORMAL' == data) { return ''+ data +''; - } else if ('PAUSED' == data || 'NONE' == data){ + } else if ('PAUSED' == data){ return ''+ data +''; } else if ('BLOCKED' == data){ return ''+ data +''; @@ -90,7 +90,7 @@ $(function() { var pause_resume = ""; if ('NORMAL' == row.jobStatus) { pause_resume = ' '; - } else if ('PAUSED' == row.jobStatus || 'NONE' == row.jobStatus){ + } else if ('PAUSED' == row.jobStatus){ pause_resume = ' '; } // log url