小编Tac*_*175的帖子

Spring重试中的@Retryable注释不会触发

我有一个表更新导致死锁,并试图让Spring重试在方法获得某种锁定异常时重试.我已经尝试取出maxAttempts,值和退避但它似乎永远不会捕获任何异常.我错过了什么吗?我是否需要在Application文件中声明一个bean?任何帮助将非常感激!

Application.Java

@SpringBootApplication
@EnableRetry
public class Application extends SpringBootServletInitializer {
Run Code Online (Sandbox Code Playgroud)

DetailService

@Service
public class DetailService {

    @Retryable(maxAttempts = 5, value = { LockAcquisitionException.class, ConcurrencyFailureException.class }, backoff = @Backoff(delay = 500, multiplier = 2) )
    public void delete(final String detailCode) {
        try {
            this.delete(this.dao.findByDetailCode(detailCode));
        } catch (LockAcquisitionException | ConcurrencyFailureException e) {
            LOG.warn("Locking error! Going to retry", e.getMessage());
            throw e;
        }
    }

    public void delete(Details detail) {
           this.dao.delete(detail);            
    }

    @Retryable(maxAttempts = 5, value = { LockAcquisitionException.class, ConcurrencyFailureException.class }, backoff = @Backoff(delay = …
Run Code Online (Sandbox Code Playgroud)

java spring-retry spring-boot

1
推荐指数
1
解决办法
3545
查看次数

标签 统计

java ×1

spring-boot ×1

spring-retry ×1