From 08f775da4bb37a2a438a9af4f3081d48fc265e8e Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: Fri, 29 Jul 2022 20:07:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=BB=E5=8A=A1=E8=BF=87?= =?UTF-8?q?=E6=9C=9F=E4=B8=8D=E6=89=A7=E8=A1=8C=E8=B0=83=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/quartz/controller/SysJobController.java | 4 ++-- .../java/com/ruoyi/quartz/service/ISysJobService.java | 2 +- .../ruoyi/quartz/service/impl/SysJobServiceImpl.java | 11 +++++++++-- .../java/com/ruoyi/quartz/util/ScheduleUtils.java | 7 ++++++- 4 files changed, 18 insertions(+), 6 deletions(-) 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()))