Programing/Spring Framework

Spring Retry

BUST 2018. 10. 30. 22:30

Spring Retry

Use case

  • 내부서비스가 아닌 외부서비스와 연동
  • 메시지를 동시에 처리를 하면서 update시 생기는 낙관적인 락을 인한 로직의 실패
  • 메시지를 동시에 처리를 하면서 Insert시에 생기는 Duplicate 에러로 인한 로직의 실패

Gradle

compile "org.springframework.retry:spring-retry:1.1.5.RELEASE"


Enable Config

@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;
    ...
}