Merge pull request 'fix(shipdetail): 기간 설정 재수집 시 RECOLLECT 모드 분기 오류 수정' (#78) from bugfix/ISSUE-75-fix-period-recollection into develop
This commit is contained in:
커밋
c3193ede2a
@ -38,6 +38,7 @@
|
||||
- 선박제원정보 수집 배치 작업 병렬화 (Partitioned Step) (#64)
|
||||
|
||||
### 수정
|
||||
- 기간 설정 재수집 시 RECOLLECT 모드 분기 오류 수정 (#75)
|
||||
- 자동 재수집 JobParameter 오버플로우 수정 (VARCHAR 2500 제한 해결)
|
||||
- retryCount 세마틱 오류 수정 (0부터 시작, 재수집 실패 시 증가)
|
||||
- 실패 레코드 저장 타이밍 경합 해결 (동기 저장으로 변경)
|
||||
|
||||
@ -28,7 +28,8 @@ import java.util.stream.Collectors;
|
||||
/**
|
||||
* 선박제원정보 변경 IMO 목록 조회 Tasklet.
|
||||
* NORMAL 모드: Maritime API에서 변경된 IMO 번호 조회
|
||||
* RECOLLECT 모드: DB에서 실패 IMO 번호 조회
|
||||
* RECOLLECT + 실패건 재수집(AUTO_RETRY/MANUAL_RETRY): DB에서 실패 IMO 번호 조회
|
||||
* RECOLLECT + 기간 재수집(MANUAL 등): Maritime API에서 설정된 기간의 IMO 번호 조회
|
||||
* 조회 결과를 JobExecutionContext에 저장하여 Partitioner가 사용할 수 있게 함.
|
||||
*/
|
||||
@Slf4j
|
||||
@ -64,11 +65,17 @@ public class ShipDetailImoFetchTasklet implements Tasklet {
|
||||
String executionMode = jobExecution.getJobParameters()
|
||||
.getString("executionMode", "NORMAL");
|
||||
|
||||
String executor = jobExecution.getJobParameters().getString("executor", "");
|
||||
boolean isFailedRecordRetry = "AUTO_RETRY".equals(executor) || "MANUAL_RETRY".equals(executor);
|
||||
|
||||
List<String> imoNumbers;
|
||||
|
||||
if ("RECOLLECT".equals(executionMode)) {
|
||||
if ("RECOLLECT".equals(executionMode) && isFailedRecordRetry) {
|
||||
// 실패건 재수집: DB에서 실패 IMO 조회
|
||||
imoNumbers = fetchRecollectImoNumbers(jobExecution);
|
||||
} else {
|
||||
// NORMAL 모드 또는 기간 재수집: Maritime API에서 IMO 조회
|
||||
// BatchDateService가 executionMode에 따라 적절한 날짜 범위를 결정
|
||||
imoNumbers = fetchChangedImoNumbers(jobExecution);
|
||||
}
|
||||
|
||||
|
||||
불러오는 중...
Reference in New Issue
Block a user