From f250417851d5c4aff2eb59c518b1900659b7e61d Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Mon, 12 Aug 2024 18:07:53 +0800 Subject: [PATCH] =?UTF-8?q?perf(X-Pack):=20=E9=98=88=E5=80=BC=E5=91=8A?= =?UTF-8?q?=E8=AD=A6=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataease/job/schedule/DeTaskExecutor.java | 24 +++++++++++++++++++ de-xpack | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) 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 a034f919ad..e21805ac38 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 @@ -22,6 +22,8 @@ public class DeTaskExecutor { private static final String RETRY_JOB_GROUP = "RETRY_REPORT_TASK"; private static final String TEMP_JOB_GROUP = "TEMP_REPORT_TASK"; + private static final String THRESHOLD_JOB_GROUP = "THRESHOLD_TASK"; + @Resource private ScheduleManager scheduleManager; @@ -34,6 +36,21 @@ public class DeTaskExecutor { public void init() { } + public void addThresholdTask(Long taskId, String cron, Long startTime, Long endTime) { + String key = taskId.toString(); + JobKey jobKey = new JobKey(key, THRESHOLD_JOB_GROUP); + TriggerKey triggerKey = new TriggerKey(key, THRESHOLD_JOB_GROUP); + JobDataMap jobDataMap = new JobDataMap(); + jobDataMap.put("taskId", taskId); + jobDataMap.put("threshold", taskId); + Date end = null; + if (CronUtils.taskExpire(endTime)) { + return; + } + if (ObjectUtils.isNotEmpty(endTime)) end = new Date(endTime); + scheduleManager.addOrUpdateCronJob(jobKey, triggerKey, DeXpackScheduleJob.class, cron, new Date(startTime), end, jobDataMap); + } + public void addOrUpdateTask(Long taskId, String cron, Long startTime, Long endTime) { if (CronUtils.taskExpire(endTime)) { return; @@ -106,6 +123,13 @@ public class DeTaskExecutor { scheduleManager.removeJob(jobKey, triggerKey); } + public void removeThresholdTask(Long taskId) { + String key = taskId.toString(); + JobKey jobKey = new JobKey(key, THRESHOLD_JOB_GROUP); + TriggerKey triggerKey = new TriggerKey(key, THRESHOLD_JOB_GROUP); + scheduleManager.removeJob(jobKey, triggerKey); + } + public void clearRetryTask() throws Exception { scheduleManager.clearByGroup(RETRY_JOB_GROUP); } diff --git a/de-xpack b/de-xpack index 97d1dee3db..11a3b6a066 160000 --- a/de-xpack +++ b/de-xpack @@ -1 +1 @@ -Subproject commit 97d1dee3db56b863d7a4b4b56248fd4e6a18a843 +Subproject commit 11a3b6a066147549ac484dce7d8b4bbc2508f93a