Merge pull request 'fix(ais): AIS WebClient 버퍼 제한 초과(DataBufferLimitException) 수정' (#68) from bugfix/fix-ais-webclient-buffer-limit into develop

This commit is contained in:
HYOJIN 2026-03-18 13:36:10 +09:00
커밋 a5228a8910
2개의 변경된 파일7개의 추가작업 그리고 1개의 파일을 삭제

파일 보기

@ -50,6 +50,7 @@
- RECOLLECT 모드에서 Tasklet 자체 스킵으로 last_success_date 복원 로직 제거 (#50) - RECOLLECT 모드에서 Tasklet 자체 스킵으로 last_success_date 복원 로직 제거 (#50)
- Quartz PostgreSQLDelegate BYTEA 컬럼 읽기 오류 수정 (#12) - Quartz PostgreSQLDelegate BYTEA 컬럼 읽기 오류 수정 (#12)
- CronPreview step=0 무한루프 방지 - CronPreview step=0 무한루프 방지
- AIS WebClient 버퍼 제한 50MB→100MB 확대 및 타임아웃 설정 추가 (DataBufferLimitException 해결)
- ShipDetailUpdateDataReader beforeFetch에서 allImoNumbers 미할당으로 인한 NPE 수정 - ShipDetailUpdateDataReader beforeFetch에서 allImoNumbers 미할당으로 인한 NPE 수정
### 변경 ### 변경

파일 보기

@ -84,12 +84,17 @@ public class MaritimeApiWebClientConfig {
log.info("Base URL: {}", maritimeAisApiUrl); log.info("Base URL: {}", maritimeAisApiUrl);
log.info("========================================"); log.info("========================================");
HttpClient httpClient = HttpClient.create()
.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 10_000) // 연결 타임아웃 10초
.responseTimeout(Duration.ofSeconds(60)); // 응답 대기 60초
return WebClient.builder() return WebClient.builder()
.clientConnector(new ReactorClientHttpConnector(httpClient))
.baseUrl(maritimeAisApiUrl) .baseUrl(maritimeAisApiUrl)
.defaultHeaders(headers -> headers.setBasicAuth(maritimeApiUsername, maritimeApiPassword)) .defaultHeaders(headers -> headers.setBasicAuth(maritimeApiUsername, maritimeApiPassword))
.codecs(configurer -> configurer .codecs(configurer -> configurer
.defaultCodecs() .defaultCodecs()
.maxInMemorySize(50 * 1024 * 1024)) // 50MB 버퍼 (AIS GetTargets 응답 ~20MB+) .maxInMemorySize(100 * 1024 * 1024)) // 100MB 버퍼
.build(); .build();
} }