From b9f9a9e00f12b45cf39def39b986280dff011c09 Mon Sep 17 00:00:00 2001 From: opensnail <598092184@qq.com> Date: Wed, 26 Jun 2024 21:30:59 +0800 Subject: [PATCH] =?UTF-8?q?fix(sj=5F1.1.0-beta2):=20=E4=BF=AE=E5=A4=8Dorac?= =?UTF-8?q?le=E8=B6=85=E8=BF=871000=E6=89=B9=E9=87=8F=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E9=97=AE=E9=A2=98=EF=BC=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../support/schedule/JobClearLogSchedule.java | 32 +++++++++---------- .../support/schedule/JobLogMergeSchedule.java | 11 +++++-- 2 files changed, 24 insertions(+), 19 deletions(-) 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 a49bd3e6d..0655649cb 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 @@ -18,12 +18,15 @@ import com.aizuda.snailjob.template.datasource.persistence.po.JobTaskBatch; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.google.common.collect.Lists; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.support.TransactionCallbackWithoutResult; import org.springframework.transaction.support.TransactionTemplate; +import org.springframework.util.CollectionUtils; import java.time.Duration; import java.time.LocalDateTime; @@ -37,21 +40,16 @@ import java.util.List; * @since 2.1.0 */ @Component -@Slf4j +@RequiredArgsConstructor public class JobClearLogSchedule extends AbstractSchedule implements Lifecycle { // last clean log time private static Long lastCleanLogTime = 0L; - @Autowired - private SystemProperties systemProperties; - @Autowired - private JobTaskBatchMapper jobTaskBatchMapper; - @Autowired - private JobTaskMapper jobTaskMapper; - @Autowired - private JobLogMessageMapper jobLogMessageMapper; - @Autowired - private TransactionTemplate transactionTemplate; + private final SystemProperties systemProperties; + private final JobTaskBatchMapper jobTaskBatchMapper; + private final JobTaskMapper jobTaskMapper; + private final JobLogMessageMapper jobLogMessageMapper; + private final TransactionTemplate transactionTemplate; @Override public String lockName() { @@ -122,26 +120,26 @@ public class JobClearLogSchedule extends AbstractSchedule implements Lifecycle { // Waiting for deletion JobTaskBatchList List ids = StreamUtils.toList(partitionTasks, PartitionTask::getId); - if (ids == null || ids.size() == 0) { + if (CollectionUtils.isEmpty(ids)) { return; } - jobTaskBatchMapper.deleteBatchIds(ids); + Lists.partition(ids, 500).forEach(partIds -> jobTaskBatchMapper.deleteByIds(ids)); // Waiting for deletion JobTaskList List jobTaskList = jobTaskMapper.selectList(new LambdaQueryWrapper().in(JobTask::getTaskBatchId, ids)); - if (jobTaskList == null || jobTaskList.size() == 0) { + if (CollectionUtils.isEmpty(jobTaskList)) { return; } List jobTaskListIds = StreamUtils.toList(jobTaskList, JobTask::getId); - jobTaskMapper.deleteBatchIds(jobTaskListIds); + Lists.partition(jobTaskListIds, 500).forEach(partIds -> jobTaskMapper.deleteByIds(partIds)); // Waiting for deletion JobLogMessageList List jobLogMessageList = jobLogMessageMapper.selectList(new LambdaQueryWrapper().in(JobLogMessage::getTaskBatchId, ids)); - if (jobLogMessageList == null || jobLogMessageList.size() == 0) { + if (CollectionUtils.isEmpty(jobLogMessageList)) { return; } List jobLogMessageListIds = StreamUtils.toList(jobLogMessageList, JobLogMessage::getId); - jobTaskMapper.deleteBatchIds(jobLogMessageListIds); + Lists.partition(jobLogMessageListIds, 500).forEach(partIds -> jobTaskMapper.deleteByIds(jobLogMessageListIds)); } }); } 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 3c15d3385..4b034cd92 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 @@ -172,10 +172,17 @@ public class JobLogMergeSchedule extends AbstractSchedule implements Lifecycle { // 批量删除、更新日志 if (CollUtil.isNotEmpty(jobLogMessageDeleteBatchIds)) { - jobLogMessageMapper.deleteBatchIds(jobLogMessageDeleteBatchIds); + List> partition = Lists.partition(jobLogMessageDeleteBatchIds, 500); + for (List mid : partition) { + jobLogMessageMapper.deleteByIds(mid); + } } + if (CollUtil.isNotEmpty(jobLogMessageInsertBatchIds)) { - jobLogMessageMapper.insertBatch(jobLogMessageInsertBatchIds); + List> partition = Lists.partition(jobLogMessageInsertBatchIds, 500); + for (List jobLogMessages : partition) { + jobLogMessageMapper.insertBatch(jobLogMessages); + } } } });