From 67a714fb360d90a814c9504bf8ca5a3a5cd201a6 Mon Sep 17 00:00:00 2001
From: opensnail <598092184@qq.com>
Date: Sun, 2 Jun 2024 17:43:09 +0800
Subject: [PATCH] =?UTF-8?q?feat(sj=5F1.0.0):=20=E4=BF=AE=E5=A4=8Dsqlserver?=
 =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93MP=E5=88=86=E9=A1=B5=E6=9F=A5?=
 =?UTF-8?q?=E8=AF=A2=E6=98=AF=E6=B2=A1=E6=9C=89=E5=B8=A6order=20by=20?=
 =?UTF-8?q?=E5=AF=BC=E8=87=B4=E7=9A=84=E6=9F=A5=E8=AF=A2=E6=8A=A5=E9=94=99?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../snailjob/server/common/util/PartitionTaskUtils.java   | 8 ++++++++
 .../job/task/support/schedule/JobClearLogSchedule.java    | 7 +++++--
 .../job/task/support/schedule/JobLogMergeSchedule.java    | 7 +++++--
 .../retry/task/support/schedule/ClearLogSchedule.java     | 6 +++++-
 .../schedule/RetryErrorMoreThresholdAlarmSchedule.java    | 8 +++++---
 .../task/support/schedule/RetryLogMergeSchedule.java      | 4 +++-
 .../schedule/RetryTaskMoreThresholdAlarmSchedule.java     | 4 ++--
 7 files changed, 33 insertions(+), 11 deletions(-)

diff --git a/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/util/PartitionTaskUtils.java b/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/util/PartitionTaskUtils.java
index 2e3c6b75..88f90a7f 100644
--- a/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/util/PartitionTaskUtils.java
+++ b/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/util/PartitionTaskUtils.java
@@ -19,6 +19,14 @@ public class PartitionTaskUtils {
     private PartitionTaskUtils() {
     }
 
+    /**
+     * 使用此方法必须order id asc
+     *
+     * @param dataSource 数据来源
+     * @param task 执行任务
+     * @param startId 初始id
+     * @return 总任务数
+     */
     public static long process(LongFunction<List<? extends PartitionTask>> dataSource,
                                Consumer<List<? extends PartitionTask>> task,
                                long startId) {
diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/schedule/JobClearLogSchedule.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/schedule/JobClearLogSchedule.java
index 43bec60c..366e6e60 100644
--- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/schedule/JobClearLogSchedule.java
+++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/schedule/JobClearLogSchedule.java
@@ -102,8 +102,11 @@ public class JobClearLogSchedule extends AbstractSchedule implements Lifecycle {
 
         List<JobTaskBatch> jobTaskBatchList = jobTaskBatchMapper.selectPage(
                 new Page<>(0, 1000),
-                new LambdaUpdateWrapper<JobTaskBatch>().ge(JobTaskBatch::getId, startId)
-                        .le(JobTaskBatch::getCreateDt, endTime)).getRecords();
+                new LambdaUpdateWrapper<JobTaskBatch>()
+                        .ge(JobTaskBatch::getId, startId)
+                        .le(JobTaskBatch::getCreateDt, endTime)
+                        .orderByAsc(JobTaskBatch::getId)
+                ).getRecords();
         return JobTaskConverter.INSTANCE.toJobTaskBatchPartitionTasks(jobTaskBatchList);
     }
 
diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/schedule/JobLogMergeSchedule.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/schedule/JobLogMergeSchedule.java
index e399dfbf..f65cc437 100644
--- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/schedule/JobLogMergeSchedule.java
+++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/schedule/JobLogMergeSchedule.java
@@ -104,9 +104,12 @@ public class JobLogMergeSchedule extends AbstractSchedule implements Lifecycle {
 
         List<JobTaskBatch> jobTaskBatchList = jobTaskBatchMapper.selectPage(
                 new Page<>(0, 1000),
-                new LambdaUpdateWrapper<JobTaskBatch>().ge(JobTaskBatch::getId, startId)
+                new LambdaUpdateWrapper<JobTaskBatch>()
+                        .ge(JobTaskBatch::getId, startId)
                         .in(JobTaskBatch::getTaskBatchStatus, JobTaskBatchStatusEnum.COMPLETED)
-                        .le(JobTaskBatch::getCreateDt, endTime)).getRecords();
+                        .le(JobTaskBatch::getCreateDt, endTime)
+                        .orderByAsc(JobTaskBatch::getId)
+                ).getRecords();
         return JobTaskConverter.INSTANCE.toJobTaskBatchPartitionTasks(jobTaskBatchList);
     }
 
diff --git a/snail-job-server/snail-job-server-retry-task/src/main/java/com/aizuda/snailjob/server/retry/task/support/schedule/ClearLogSchedule.java b/snail-job-server/snail-job-server-retry-task/src/main/java/com/aizuda/snailjob/server/retry/task/support/schedule/ClearLogSchedule.java
index 7e24f69b..70220569 100644
--- a/snail-job-server/snail-job-server-retry-task/src/main/java/com/aizuda/snailjob/server/retry/task/support/schedule/ClearLogSchedule.java
+++ b/snail-job-server/snail-job-server-retry-task/src/main/java/com/aizuda/snailjob/server/retry/task/support/schedule/ClearLogSchedule.java
@@ -96,7 +96,11 @@ public class ClearLogSchedule extends AbstractSchedule implements Lifecycle {
 
         List<RetryTaskLog> retryTaskLogList = retryTaskLogMapper.selectPage(
                 new Page<>(0, 1000),
-                new LambdaUpdateWrapper<RetryTaskLog>().ge(RetryTaskLog::getId, startId).le(RetryTaskLog::getCreateDt, endTime)).getRecords();
+                new LambdaUpdateWrapper<RetryTaskLog>()
+                        .ge(RetryTaskLog::getId, startId)
+                        .le(RetryTaskLog::getCreateDt, endTime)
+                        .orderByAsc(RetryTaskLog::getId)
+                ).getRecords();
         return RetryTaskConverter.INSTANCE.toRetryTaskLogPartitionTasks(retryTaskLogList);
     }
 
diff --git a/snail-job-server/snail-job-server-retry-task/src/main/java/com/aizuda/snailjob/server/retry/task/support/schedule/RetryErrorMoreThresholdAlarmSchedule.java b/snail-job-server/snail-job-server-retry-task/src/main/java/com/aizuda/snailjob/server/retry/task/support/schedule/RetryErrorMoreThresholdAlarmSchedule.java
index 00cb3e89..8a9706d8 100644
--- a/snail-job-server/snail-job-server-retry-task/src/main/java/com/aizuda/snailjob/server/retry/task/support/schedule/RetryErrorMoreThresholdAlarmSchedule.java
+++ b/snail-job-server/snail-job-server-retry-task/src/main/java/com/aizuda/snailjob/server/retry/task/support/schedule/RetryErrorMoreThresholdAlarmSchedule.java
@@ -123,10 +123,12 @@ public class RetryErrorMoreThresholdAlarmSchedule extends AbstractSchedule imple
     private List<NotifyConfigPartitionTask> getNotifyConfigPartitions(Long startId) {
 
         List<NotifyConfig> notifyConfigs = accessTemplate.getNotifyConfigAccess()
-                .listPage(new PageDTO<>(startId, 1000), new LambdaQueryWrapper<NotifyConfig>()
+                .listPage(new PageDTO<>(0, 1000), new LambdaQueryWrapper<NotifyConfig>()
+                        .gt(NotifyConfig::getId, startId)
                         .eq(NotifyConfig::getNotifyStatus, StatusEnum.YES.getStatus())
-                        .eq(NotifyConfig::getNotifyScene, RetryNotifySceneEnum.MAX_RETRY_ERROR.getNotifyScene()))
-                .getRecords();
+                        .eq(NotifyConfig::getNotifyScene, RetryNotifySceneEnum.MAX_RETRY_ERROR.getNotifyScene())
+                        .orderByAsc(NotifyConfig::getId)
+                ).getRecords();
 
         if (CollUtil.isEmpty(notifyConfigs)) {
             return Lists.newArrayList();
diff --git a/snail-job-server/snail-job-server-retry-task/src/main/java/com/aizuda/snailjob/server/retry/task/support/schedule/RetryLogMergeSchedule.java b/snail-job-server/snail-job-server-retry-task/src/main/java/com/aizuda/snailjob/server/retry/task/support/schedule/RetryLogMergeSchedule.java
index 196ee74a..1e50b1bd 100644
--- a/snail-job-server/snail-job-server-retry-task/src/main/java/com/aizuda/snailjob/server/retry/task/support/schedule/RetryLogMergeSchedule.java
+++ b/snail-job-server/snail-job-server-retry-task/src/main/java/com/aizuda/snailjob/server/retry/task/support/schedule/RetryLogMergeSchedule.java
@@ -109,7 +109,9 @@ public class RetryLogMergeSchedule extends AbstractSchedule implements Lifecycle
                         .in(RetryTaskLog::getRetryStatus, Lists.newArrayList(
                                 RetryStatusEnum.FINISH.getStatus(),
                                 RetryStatusEnum.MAX_COUNT.getStatus()))
-                        .le(RetryTaskLog::getCreateDt, endTime)).getRecords();
+                        .le(RetryTaskLog::getCreateDt, endTime)
+                        .orderByAsc(RetryTaskLog::getId)
+        ).getRecords();
         return RetryTaskLogConverter.INSTANCE.toRetryMergePartitionTaskDTOs(jobTaskBatchList);
     }
 
diff --git a/snail-job-server/snail-job-server-retry-task/src/main/java/com/aizuda/snailjob/server/retry/task/support/schedule/RetryTaskMoreThresholdAlarmSchedule.java b/snail-job-server/snail-job-server-retry-task/src/main/java/com/aizuda/snailjob/server/retry/task/support/schedule/RetryTaskMoreThresholdAlarmSchedule.java
index 1e94a183..6dbaee3c 100644
--- a/snail-job-server/snail-job-server-retry-task/src/main/java/com/aizuda/snailjob/server/retry/task/support/schedule/RetryTaskMoreThresholdAlarmSchedule.java
+++ b/snail-job-server/snail-job-server-retry-task/src/main/java/com/aizuda/snailjob/server/retry/task/support/schedule/RetryTaskMoreThresholdAlarmSchedule.java
@@ -116,11 +116,11 @@ public class RetryTaskMoreThresholdAlarmSchedule extends AbstractSchedule implem
     private List<NotifyConfigPartitionTask> getNotifyConfigPartitions(Long startId) {
 
         List<NotifyConfig> notifyConfigs = accessTemplate.getNotifyConfigAccess()
-                .listPage(new PageDTO<>(startId, 1000), new LambdaQueryWrapper<NotifyConfig>()
+                .listPage(new PageDTO<>(0, 1000), new LambdaQueryWrapper<NotifyConfig>()
                         .eq(NotifyConfig::getNotifyStatus, StatusEnum.YES.getStatus())
                         .eq(NotifyConfig::getSystemTaskType, SyetemTaskTypeEnum.RETRY.getType())
                         .eq(NotifyConfig::getNotifyScene, RetryNotifySceneEnum.MAX_RETRY.getNotifyScene())
-                        .orderByDesc(NotifyConfig::getId)) // SQLServer 分页必须 ORDER BY
+                        .orderByAsc(NotifyConfig::getId)) // SQLServer 分页必须 ORDER BY
                 .getRecords();
 
         Set<Long> recipientIds = notifyConfigs.stream()