반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 카프카
- JPA공부
- K8S
- JPA예제
- querydsl
- 플러터 개발
- 스프링부트
- 자료구조공부
- 스프링부트공부
- 스프링 공부
- 기술공부
- 플러터 공부
- 스프링공부
- Kafka
- JPA
- JPA스터디
- 자바공부
- 기술면접공부
- nestjs공부
- nestjs스터디
- 코테공부
- Flutter
- 프로그래머스
- nestjs
- Axon framework
- 스프링
- 코테준비
- DDD
- 알고리즘공부
- JPA 공부
Archives
- Today
- Total
DevBoi
[Spring Batch] Spring Batch에서 멱등성을 유지하는 방법 본문
반응형
멱등성 : 연산을 여러번 적용하더라도, 결과가 달라지지 않는 성질
예를 들어서 오늘 날짜의 매출 데이터를 집계하는 배치가 있다고 가정하자
코드에서 만약에 LocalDate.Now가 있다면, 배치는 항상 오늘 날짜를 가져와서 혹은 오늘기준의 특정 날짜를 가져와서
배치를 실행 시킬 것이다.
근데 만약에,,,어제 배치를 다시 돌려달라고 하거나, 어제 배치가 오류가 나서 어제의 배치를 다시 돌려야할때는?
소스 수정 -> 배포 -> 롤백의 과정을 거쳐야한다.
이와 같은 것은 멱등성이 깨졌다고 할수있다.
해당 케이스의 경우에 멱등성을 지킬수 있는 방법은 몇가지가 있다.
Spring Batch Job Parameter를 통해, 오늘날짜의 값을 외부에서 주입받아서 실행 시켜주면 된다.
그러면 이와 같은 경우에는 멱등성을 유지할 수 있게 된다.
또한 Spring Batch의 스케쥴러 중 하나인 Jenkins에서는 DateParameter 플러그 인이 존재하여, 날짜를 주입 받아서 사용할 수있다.
이 플러그인은 Java8의 LocalDateTime과 호환하여 사용 할 수있어서 편하게 관리가 가능하다.
Jenkins 예시
반응형
'Develop > [Spring Batch]' 카테고리의 다른 글
[Spring Batch] How to FailOver(Skip) (0) | 2022.04.10 |
---|---|
[Spring Batch] Not Use in Meta Tables (0) | 2022.04.10 |
[Spring Batch] Meta Tables (0) | 2022.04.10 |
[Spring Batch] 스프링 배치의 구조 (0) | 2022.04.10 |
[Spring Batch] 스프링 배치 사용이유 (0) | 2022.04.10 |