Kubernetes 환경에서 sample-batch 시스템은 Java 기반의 Spring Batch Job을 실행하고 있으며, 안정적인 종료 처리가 매우 중요합니다. 특히 다음과 같은 요구사항을 만족해야 합니다: 이를 위해 다음 설정 및 코드 전략을 활용했습니다: 핵심 설정 yaml복사편집activeDeadlineSeconds: 180 terminationGracePeriodSeconds: 10
코드 전략 요약 1. Shutdown Hook에서 Whatap 처리 및 Thread 정리 Runtime.getRuntime().addShutdownHook(new 더 읽기
java batch
Kubernetes CronJob 강제 종료 및 graceful shutdown 처리 방법 (Spring Batch + 모니터링 연동)
Kubernetes CronJob을 활용해 Java 기반 Spring Batch 작업을 수행하는 환경에서, 작업 시간이 초과되었을 때의 강제 종료 처리가 필요할 수 있습니다. 이를 위해 activeDeadlineSeconds를 활용하면 설정된 시간 초과 시 작업을 종료할 수 있습니다. 그러나 기본적으로 Kubernetes는 종료 시 SIGTERM을 먼저 보내고, 이후 terminationGracePeriodSeconds 동안 graceful shutdown을 기다립니다. 이 시간이 지나야 SIGKILL을 더 읽기
Spring Batch 병렬 처리 시 “Scope ‘job’ is not active” 오류 해결 방법 (Spring Boot 3 + Batch 5)
Spring Batch 병렬 처리 시 발생하는 Scope ‘job’ is not active 오류와 해결 방법 Spring Boot 3 + Spring Batch 5 환경에서 병렬 Step 처리(TaskExecutorPartitionHandler)를 구현하던 중 다음과 같은 오류가 발생할 수 있습니다: Scope ‘job’ is not active for the current threadNo context holder available for job scope 해당 오류는 더 읽기