From 349bb2126d3994b92cdfedc358741e5b40d9493d Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Fri, 17 May 2024 10:20:40 +0800 Subject: [PATCH] =?UTF-8?q?fix(X-Pack):=20=E5=AE=9A=E6=97=B6=E6=8A=A5?= =?UTF-8?q?=E5=91=8A=E4=BB=BB=E5=8A=A1=E5=81=9C=E6=AD=A2=E5=AE=9E=E4=BE=8B?= =?UTF-8?q?=E6=9C=AA=E5=81=9C=E6=AD=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/dataease/job/schedule/DeTaskExecutor.java | 11 ++++++++--- .../io/dataease/job/schedule/ScheduleManager.java | 9 +++++++++ de-xpack | 2 +- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/job/schedule/DeTaskExecutor.java b/core/core-backend/src/main/java/io/dataease/job/schedule/DeTaskExecutor.java index bb10e7e004..819be4a98e 100644 --- a/core/core-backend/src/main/java/io/dataease/job/schedule/DeTaskExecutor.java +++ b/core/core-backend/src/main/java/io/dataease/job/schedule/DeTaskExecutor.java @@ -29,7 +29,8 @@ public class DeTaskExecutor { } @XpackInteract(value = "xpackTaskExecutor", replace = true) - public void init() {} + public void init() { + } public void addOrUpdateTask(Long taskId, String cron, Long startTime, Long endTime) { if (CronUtils.taskExpire(endTime)) { @@ -46,10 +47,14 @@ public class DeTaskExecutor { scheduleManager.addOrUpdateCronJob(jobKey, triggerKey, DeXpackScheduleJob.class, cron, new Date(startTime), end, jobDataMap); } - public void fireNow(Long taskId) throws Exception { + public boolean fireNow(Long taskId) throws Exception { String key = taskId.toString(); JobKey jobKey = new JobKey(key, JOB_GROUP); - scheduleManager.fireNow(jobKey); + if (scheduleManager.exist(jobKey)) { + scheduleManager.fireNow(jobKey); + return true; + } + return false; } public void addTempTask(Long taskId, Long startTime) { diff --git a/core/core-backend/src/main/java/io/dataease/job/schedule/ScheduleManager.java b/core/core-backend/src/main/java/io/dataease/job/schedule/ScheduleManager.java index 6691644506..5534f0f614 100644 --- a/core/core-backend/src/main/java/io/dataease/job/schedule/ScheduleManager.java +++ b/core/core-backend/src/main/java/io/dataease/job/schedule/ScheduleManager.java @@ -431,4 +431,13 @@ public class ScheduleManager { scheduler.triggerJob(jobKey); } + public boolean exist(JobKey jobKey) { + try { + return scheduler.checkExists(jobKey); + } catch (SchedulerException e) { + LogUtil.error(e.getMessage(), new Throwable(e)); + return false; + } + } + } diff --git a/de-xpack b/de-xpack index 16f95eb548..96a9aef239 160000 --- a/de-xpack +++ b/de-xpack @@ -1 +1 @@ -Subproject commit 16f95eb5481cda834434b2c6f956b66a411ad67b +Subproject commit 96a9aef239d74efa6d6e7c3780d42409b065ae2a