feat(1.5.0-beta1): 回滚死信表数据,存在重复的数据时明确异常信息

This commit is contained in:
opensnail 2025-04-15 22:19:19 +08:00
parent 3fa9eaceb9
commit 251bbd0a36

View File

@ -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);
}
try {
TaskAccess<Retry> 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<Long> waitDelRetryDeadLetterIdSet = StreamUtils.toSet(retryDeadLetterList, RetryDeadLetter::getId);
Assert.isTrue(waitDelRetryDeadLetterIdSet.size() == retryDeadLetterAccess.delete(