我在项目中将Spring Boot与JPA一起使用。我在进行一些JPA操作时遇到疑问,例如repository.save(object)
。
如果由于DB间歇性断开而导致程序无法连接DB,则
- 在异常情况下,程序如何使用某些spring boot功能重试此操作?
- 放在课堂上最相关的异常类别是什么?
感谢您的帮助!
我在项目中将Spring Boot与JPA一起使用。我在进行一些JPA操作时遇到疑问,例如repository.save(object)
。
如果由于DB间歇性断开而导致程序无法连接DB,则
感谢您的帮助!
对于此特定用例,您可以使用Spring Retry。您可以配置要在什么故障条件下进行重试,如果重试失败,还可以使用一种recover
方法进行恢复。
您可以在配置类上使用@EnableRetry批注启用重试。
@Configuration
@EnableRetry
public class AppConfig { ... }
然后,使用@Retryable注释,如下所示。您可以配置需要重试的异常,重试的间隔和重试次数。
@Service
public interface MyService {
@Retryable(value = { SQLException.class },maxAttempts = 2,backoff = @Backoff(delay = 5000))
void retryService(String sql) throws SQLException;
}