diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobController.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobController.java index a951f60e..6cbe3114 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobController.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobController.java @@ -111,8 +111,8 @@ public class SysJobController extends BaseController @ResponseBody public AjaxResult run(SysJob job) throws SchedulerException { - jobService.run(job); - return success(); + boolean result = jobService.run(job); + return result ? success() : error("任务不存在或已过期!"); } /** diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ISysJobService.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ISysJobService.java index ce495329..619fadc2 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ISysJobService.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ISysJobService.java @@ -74,7 +74,7 @@ public interface ISysJobService * @param job 调度信息 * @return 结果 */ - public void run(SysJob job) throws SchedulerException; + public boolean run(SysJob job) throws SchedulerException; /** * 新增任务 diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java index 1b3e33f9..a43e434a 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java @@ -177,14 +177,21 @@ public class SysJobServiceImpl implements ISysJobService */ @Override @Transactional(rollbackFor = Exception.class) - public void run(SysJob job) throws SchedulerException + public boolean run(SysJob job) throws SchedulerException { + boolean result = false; Long jobId = job.getJobId(); SysJob tmpObj = selectJobById(job.getJobId()); // 参数 JobDataMap dataMap = new JobDataMap(); dataMap.put(ScheduleConstants.TASK_PROPERTIES, tmpObj); - scheduler.triggerJob(ScheduleUtils.getJobKey(jobId, tmpObj.getJobGroup()), dataMap); + JobKey jobKey = ScheduleUtils.getJobKey(jobId, tmpObj.getJobGroup()); + if (scheduler.checkExists(jobKey)) + { + result = true; + scheduler.triggerJob(jobKey, dataMap); + } + return result; } /** diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/ScheduleUtils.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/ScheduleUtils.java index 149b0a57..100e22ad 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/ScheduleUtils.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/ScheduleUtils.java @@ -83,7 +83,12 @@ public class ScheduleUtils scheduler.deleteJob(getJobKey(jobId, jobGroup)); } - scheduler.scheduleJob(jobDetail, trigger); + // 判断任务是否过期 + if (StringUtils.isNotNull(CronUtils.getNextExecution(job.getCronExpression()))) + { + // 执行调度任务 + scheduler.scheduleJob(jobDetail, trigger); + } // 暂停任务 if (job.getStatus().equals(ScheduleConstants.Status.PAUSE.getValue()))