From 251bbd0a36202db9f4a81a0c12914052a1462686 Mon Sep 17 00:00:00 2001 From: opensnail <598092184@qq.com> Date: Tue, 15 Apr 2025 22:19:19 +0800 Subject: [PATCH] =?UTF-8?q?feat(1.5.0-beta1):=20=E5=9B=9E=E6=BB=9A?= =?UTF-8?q?=E6=AD=BB=E4=BF=A1=E8=A1=A8=E6=95=B0=E6=8D=AE=EF=BC=8C=E5=AD=98?= =?UTF-8?q?=E5=9C=A8=E9=87=8D=E5=A4=8D=E7=9A=84=E6=95=B0=E6=8D=AE=E6=97=B6?= =?UTF-8?q?=E6=98=8E=E7=A1=AE=E5=BC=82=E5=B8=B8=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/service/impl/RetryDeadLetterServiceImpl.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/RetryDeadLetterServiceImpl.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/RetryDeadLetterServiceImpl.java index b5e865c03..55c47782e 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/RetryDeadLetterServiceImpl.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/RetryDeadLetterServiceImpl.java @@ -29,6 +29,7 @@ import com.aizuda.snailjob.template.datasource.persistence.po.*; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; import lombok.RequiredArgsConstructor; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -125,9 +126,13 @@ public class RetryDeadLetterServiceImpl implements RetryDeadLetterService { waitRollbackList.add(retry); } - TaskAccess retryTaskAccess = accessTemplate.getRetryAccess(); - Assert.isTrue(waitRollbackList.size() == retryTaskAccess.insertBatch( waitRollbackList), - () -> new SnailJobServerException("Failed to add retry task")); + try { + TaskAccess retryTaskAccess = accessTemplate.getRetryAccess(); + Assert.isTrue(waitRollbackList.size() == retryTaskAccess.insertBatch( waitRollbackList), + () -> new SnailJobServerException("Failed to add retry task")); + } catch (DuplicateKeyException e) { + throw new SnailJobServerException("Duplicate retry task"); + } Set waitDelRetryDeadLetterIdSet = StreamUtils.toSet(retryDeadLetterList, RetryDeadLetter::getId); Assert.isTrue(waitDelRetryDeadLetterIdSet.size() == retryDeadLetterAccess.delete(