From 2f380f0c4177d02010759c0ecf0c63543bb90157 Mon Sep 17 00:00:00 2001
From: 若依 <yzz_ivy@163.com>
Date: Fri, 26 Aug 2022 08:42:03 +0800
Subject: [PATCH] !564 修复执行任务时,若方法入口在任务的父类,则无法执行的问题 Merge pull request !564 from 捏造的信仰/fix-issue-I5NNXI
---
ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/ScheduleUtils.java | 18 +++++++++++-------
1 files changed, 11 insertions(+), 7 deletions(-)
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 00d07f4..e6dea10 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
@@ -15,6 +15,7 @@
import com.ruoyi.common.exception.job.TaskException;
import com.ruoyi.common.exception.job.TaskException.Code;
import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.quartz.domain.SysJob;
/**
@@ -82,7 +83,12 @@
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()))
@@ -121,15 +127,13 @@
*/
public static boolean whiteList(String invokeTarget)
{
- String packageName = StringUtils.substringBefore(invokeTarget, ")");
+ String packageName = StringUtils.substringBefore(invokeTarget, "(");
int count = StringUtils.countMatches(packageName, ".");
if (count > 1)
{
- if (!StringUtils.containsAnyIgnoreCase(invokeTarget, Constants.JOB_WHITELIST_STR))
- {
- return false;
- }
+ return StringUtils.containsAnyIgnoreCase(invokeTarget, Constants.JOB_WHITELIST_STR);
}
- return true;
+ Object obj = SpringUtils.getBean(StringUtils.split(invokeTarget, ".")[0]);
+ return StringUtils.containsAnyIgnoreCase(obj.getClass().getPackage().getName(), Constants.JOB_WHITELIST_STR);
}
}
--
Gitblit v1.9.2