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 了解更多信息。
你可以只记录一些东西,并故意让它看不到它是否在延迟后再次被记录。
下面的代码是使用 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 了解更多信息。
你可以只记录一些东西,并故意让它看不到它是否在延迟后再次被记录。