首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@Retryable with Spring @Transactional

@Retryable with Spring @Transactional
EN

Stack Overflow用户
提问于 2021-11-19 15:15:43
回答 1查看 54关注 0票数 1

我有一个项目,而我需要在事务性方法上使用retriable。假设我想要更新一些客户端信息,我需要重试更新2次,直到更新。

我把我的pom依赖

代码语言:javascript
复制
       <dependency>
            <groupId>org.springframework.retry</groupId>
            <artifactId>spring-retry</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>

在我的@Configuration类中,我有@EnableRetry。在我的@Service类中,我定义了一个方法:

代码语言:javascript
复制
>  @Retryable(value = CannotAcquireLockException.class, maxAttempts = 3,
> backoff = @Backoff(delay = 1000,multiplier = 2,maxDelay = 5000))
>     @Transactional
>     public void updateClient (String info) throws Exception {
>         updateClientFromDB(info);
>     }

我从Junit5测试了我的方法,似乎@Retryable不起作用。我在db中锁定一行,当我运行测试时,它似乎没有重试,它无限循环。

代码语言:javascript
复制
> @ExtendWith(SpringExtension.class) 
> @ContextConfiguration(classes = {DSConfig.class }) 
> @ActiveProfiles({ "test" }) 
> @Slf4j class Test {
> 
> @Test     
> void retryTest() {        
>  String info = "Test";        
>  updateClient(info);  } }
EN

回答 1

Stack Overflow用户

发布于 2021-11-19 15:47:03

updateClientFromDB会抛出CannotAcquireLockException吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70037049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档