From 38b491163cb5a5bb450f8f44f69c232157477e65 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Mon, 30 Jun 2025 08:17:54 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E7=AE=A1=E7=90=86=E9=A1=B5=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=B8=80=E5=88=97=E6=98=BE=E7=A4=BA=E4=BD=9C=E4=B8=9A=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E5=B7=B2=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1441426846482432]定时作业管理页增加一列显示作业是否已加载 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1441426846482432 --- .../scheduler/core/SchedulerManager.java | 17 +++++++++++++- .../framework/scheduler/dto/JobStatusVo.java | 22 +++++++++++++++++++ .../framework/scheduler/dto/JobVo.java | 11 ---------- 3 files changed, 38 insertions(+), 12 deletions(-) diff --git a/src/main/java/neatlogic/framework/scheduler/core/SchedulerManager.java b/src/main/java/neatlogic/framework/scheduler/core/SchedulerManager.java index 50e97a7f0..ddab2aede 100644 --- a/src/main/java/neatlogic/framework/scheduler/core/SchedulerManager.java +++ b/src/main/java/neatlogic/framework/scheduler/core/SchedulerManager.java @@ -46,12 +46,13 @@ import java.util.stream.Collectors; @RootComponent public class SchedulerManager extends ModuleInitializedListenerBase { - private final Logger logger = LoggerFactory.getLogger(SchedulerManager.class); + private static final Logger logger = LoggerFactory.getLogger(SchedulerManager.class); private static final Map jobHandlerMap = new HashMap<>(); private static final Map jobClassMap = new HashMap<>(); private static final List publicJobClassList = new ArrayList<>(); private static final ReentrantLock GLOBAL_LOCK = new ReentrantLock(); + private static SchedulerFactoryBean staticSchedulerFactoryBean; @Resource private TenantMapper tenantMapper; @@ -64,6 +65,7 @@ public class SchedulerManager extends ModuleInitializedListenerBase { protected void myInit() { tenantList = tenantMapper.getAllActiveTenant(); + staticSchedulerFactoryBean = schedulerFactoryBean; } public static IJob getHandler(String className) { @@ -95,6 +97,19 @@ public class SchedulerManager extends ModuleInitializedListenerBase { return false; } + public static boolean checkJobIsLoad(String jobName, String jobGroup) { + JobKey jobKey = new JobKey(jobName, jobGroup); + Scheduler scheduler = staticSchedulerFactoryBean.getScheduler(); + try { + if (scheduler.getJobDetail(jobKey) != null) { + return true; + } + } catch (SchedulerException e) { + logger.error(e.getMessage(), e); + } + return false; + } + /** * 加载定时作业,同时设置定时作业状态和锁 * diff --git a/src/main/java/neatlogic/framework/scheduler/dto/JobStatusVo.java b/src/main/java/neatlogic/framework/scheduler/dto/JobStatusVo.java index 557402ced..3f23bb6e3 100644 --- a/src/main/java/neatlogic/framework/scheduler/dto/JobStatusVo.java +++ b/src/main/java/neatlogic/framework/scheduler/dto/JobStatusVo.java @@ -4,6 +4,8 @@ import neatlogic.framework.common.constvalue.ApiParamType; import neatlogic.framework.common.dto.BaseEditorVo; import neatlogic.framework.restful.annotation.EntityField; import com.alibaba.fastjson.annotation.JSONField; +import neatlogic.framework.scheduler.core.SchedulerManager; +import org.apache.commons.lang3.StringUtils; import java.util.Date; @@ -30,6 +32,9 @@ public class JobStatusVo extends BaseEditorVo { @EntityField(name = "执行次数", type = ApiParamType.INTEGER) private Integer execCount = 0; + @EntityField(name = "是否已加载", + type = ApiParamType.INTEGER) + private Integer isLoad; @JSONField(serialize = false) private Integer needAudit; @@ -100,4 +105,21 @@ public class JobStatusVo extends BaseEditorVo { public void setHandler(String handler) { this.handler = handler; } + + public Integer getIsLoad() { + if (isLoad == null) { + if (StringUtils.isNotBlank(this.jobName) && StringUtils.isNotBlank(this.jobGroup)) { + if (SchedulerManager.checkJobIsLoad(this.jobName, this.jobGroup)) { + isLoad = 1; + } else { + isLoad = 0; + } + } + } + return isLoad; + } + + public void setIsLoad(Integer isLoad) { + this.isLoad = isLoad; + } } diff --git a/src/main/java/neatlogic/framework/scheduler/dto/JobVo.java b/src/main/java/neatlogic/framework/scheduler/dto/JobVo.java index 3be89ea11..d095009a6 100644 --- a/src/main/java/neatlogic/framework/scheduler/dto/JobVo.java +++ b/src/main/java/neatlogic/framework/scheduler/dto/JobVo.java @@ -56,9 +56,6 @@ public class JobVo extends BasePageVo { @EntityField(name = "结束时间", type = ApiParamType.LONG) private Date endTime; - @EntityField(name = "是否已加载", - type = ApiParamType.INTEGER) - private Integer isLoad; private JobStatusVo jobStatus; @@ -183,12 +180,4 @@ public class JobVo extends BasePageVo { } return 0; } - - public Integer getIsLoad() { - return isLoad; - } - - public void setIsLoad(Integer isLoad) { - this.isLoad = isLoad; - } } -- Gitee