Spring 使用事务注释重试

Spring Retry with Transactional Annotation

下面的代码是使用 Spring Retry with Transactional 的正确方法吗? 或者我需要额外处理什么吗?我正在使用最新的 Spring 引导版本 失败的事务关闭后是否重试?

@Repository
public class MyRepository {


    @Retryable( value = CustomRetryAbleException.class, maxAttempts = 2, backoff = @Backoff(delay = 30000))
    @Transactional
    Employee updateAndGetEmployee(String date) throw CustomRetryAbleException;
    
    {
         try{
         
        jdbcTemplate.exceute( ....) ; //Call Stored Proc
        }
        
        catch(CustomRetryAbleException c )
        {
          throw  CustomRetryAbleException (" Retry this Exception " );
        }
    }
    

'This is the way.'

不要忘记在您的配置-class(用@Configuration 注释)或您的应用程序-class(用@SpringBootApplication 注释)上添加@EnableRetry 注释。

阅读 this 了解更多信息。

你可以只记录一些东西,并故意让它看不到它是否在延迟后再次被记录。