- LogCleanupJob: 보존 기간 초과 배치 로그 삭제 Tasklet Job
- 대상: batch_api_log(30일), Spring Batch 메타(90일),
batch_failed_record/RESOLVED(90일), batch_recollection_history(90일)
- application.yml에서 테이블별 보존 기간 설정 가능
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
tb_ship_risk_info에서 전체 IMO 조회 → 파티션 병렬 처리로
RisksByImos API 호출 → tb_ship_risk_detail_info에 INSERT
Closes#65
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
기간 재수집(executor=MANUAL)에서 실패건 재수집(AUTO_RETRY/MANUAL_RETRY)
로직을 타면서 sourceJobExecutionId 없이 0건 종료되던 문제 수정.
실패건 재수집만 DB 조회, 기간 재수집은 Maritime API 호출로 분기.
Closes#75
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
StringListPartitioner, LastExecutionUpdateTasklet, BasePartitionedJobConfig를
공통 모듈로 추출하고 ShipDetailUpdateJobConfig가 이를 사용하도록 리팩토링
Closes#73
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- IMO 목록을 N개 파티션으로 분할하여 병렬 API 호출
- ImoFetchTasklet으로 IMO 조회 단계 분리
- sourceStepExecutionId → sourceJobExecutionId 마이그레이션
- afterFetch 중복 실행 방지 플래그 추가
- partition-count 설정 외부화 (dev:2, prod:4)
- job_display_name 테이블 신규 생성 (jobName, displayName, apiKey)
- 정적 Map 제거 → DB 캐시 기반 표시명 조회로 전환
- 초기 데이터 시드 20건 (테이블 비어있을 때 자동 삽입)
- 표시명 조회/수정 REST API 추가 (GET/PUT /api/batch/display-names)
- 재수집 이력 생성 시 displayName 우선 적용
- 전체 화면 displayName 통합 (Dashboard, Executions, Recollects, RecollectDetail, Schedules, Timeline)
- retryRecordKeys JobParameter 제거 → DB 직접 조회 (VARCHAR 2500 제한 해결)
- retryCount 세마틱 수정 (0부터 시작, 재수집 실패 시 +1)
- 실패 레코드 Upsert로 중복 방지 (동일 키 1건만 유지)
- 동기 저장으로 RECOLLECT 타이밍 경합 해결
- 재시도 초과 레코드 초기화 API/UI 추가
- 실행 확인 모달 시작/종료일시 항목 제거
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Timeline 상세 링크 <a href> → <Link to> 변경 (SPA 라우팅 수정)
- WebViewController에 와일드카드 패턴 추가 (새로고침 시 SPA fallback 보장)
- 실행 이력에서 실행 중 작업에도 상세 버튼 표시 (중지/강제종료/상세)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 자동 재수집 리스너(AutoRetryJobExecutionListener) 및 비동기 트리거 서비스 추가
- 실패 레코드 최대 재시도 횟수(3회) 제한으로 무한 루프 방지
- 전용 스레드 풀(autoRetryExecutor) 분리
- last_success_date 복원 시 경합 조건 보호
- 재수집 이력 N+1 쿼리 해결 (벌크 조회)
- 실패 레코드 일괄 RESOLVED 처리 API 추가
- 재수집 이력 CSV 내보내기 API 추가 (UTF-8 BOM)
- 프론트엔드 공유 컴포넌트 추출 (StatCard, CopyButton, ApiLogSection, InfoItem)
- 대시보드 재수집 통계 위젯 추가
- 실행 이력 미해결 건수 COMPLETED 상태만 표시
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- GET /api/batch/last-collections API 엔드포인트 추가
- BatchLastExecution 엔티티에 apiDesc 컬럼 추가
- 재수집 이력 페이지에 마지막 수집 완료일시 토글 패널 추가
- 상태 요약 바 (정상/주의/경고 건수)
- API별 테이블 (성공일시, 경과시간, 상태 뱃지)
- /monitoring SPA 라우트 추가
Closes#17
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>