From b046d03357a035bf555605cec3dd560edd71eff4 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Tue, 9 Jul 2024 19:15:59 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E9=A1=B9=E7=9B=AE=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E6=97=B6=E5=88=A0=E9=99=A4=E6=89=80=E6=9C=89=E9=87=8D=E8=AF=95?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/dataease/job/schedule/DeTaskExecutor.java | 4 ++++ .../io/dataease/job/schedule/ScheduleManager.java | 13 +++++++++---- .../java/io/dataease/listener/XpackTaskStarter.java | 1 + 3 files changed, 14 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 74766c5138..86c6620eaf 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 @@ -105,4 +105,8 @@ public class DeTaskExecutor { TriggerKey triggerKey = new TriggerKey(key, RETRY_JOB_GROUP); scheduleManager.removeJob(jobKey, triggerKey); } + + public void clearRetryTask() throws Exception { + scheduleManager.clearByGroup(RETRY_JOB_GROUP); + } } 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 5534f0f614..e97029442a 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 @@ -6,12 +6,10 @@ import io.dataease.i18n.Translator; import io.dataease.utils.LogUtil; import jakarta.annotation.Resource; import org.quartz.*; +import org.quartz.impl.matchers.GroupMatcher; import org.springframework.stereotype.Component; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; @Component public class ScheduleManager { @@ -440,4 +438,11 @@ public class ScheduleManager { } } + public void clearByGroup(String groupName) throws Exception { + Set jobKeys = scheduler.getJobKeys(GroupMatcher.groupEquals(groupName)); + Set triggerKeys = scheduler.getTriggerKeys(GroupMatcher.groupEquals(groupName)); + scheduler.pauseTriggers(GroupMatcher.groupEquals(groupName)); + scheduler.unscheduleJobs(new ArrayList<>(triggerKeys)); + scheduler.deleteJobs(new ArrayList<>(jobKeys)); + } } diff --git a/core/core-backend/src/main/java/io/dataease/listener/XpackTaskStarter.java b/core/core-backend/src/main/java/io/dataease/listener/XpackTaskStarter.java index 0154a29f6f..70a2f022a4 100644 --- a/core/core-backend/src/main/java/io/dataease/listener/XpackTaskStarter.java +++ b/core/core-backend/src/main/java/io/dataease/listener/XpackTaskStarter.java @@ -21,6 +21,7 @@ public class XpackTaskStarter implements ApplicationRunner { try { LicenseUtil.validate(); deTaskExecutor.init(); + deTaskExecutor.clearRetryTask(); } catch (Exception e) { LogUtil.error(e.getMessage(), e.getCause()); }