Kubernetes CronJob 강제 종료 및 graceful shutdown 처리 방법 (Spring Batch + 모니터링 연동)

Kubernetes CronJob을 활용해 Java 기반 Spring Batch 작업을 수행하는 환경에서, 작업 시간이 초과되었을 때의 강제 종료 처리가 필요할 수 있습니다. 이를 위해 activeDeadlineSeconds를 활용하면 설정된 시간 초과 시 작업을 종료할 수 있습니다. 그러나 기본적으로 Kubernetes는 종료 시 SIGTERM을 먼저 보내고, 이후 terminationGracePeriodSeconds 동안 graceful shutdown을 기다립니다. 이 시간이 지나야 SIGKILL을 더 읽기

Spring BeanCreationNotAllowedException: Singleton Bean 생성 오류와 종료 시점 문제 해결법

1. 오류 메시지 Spring 종료 시 다음과 같은 예외가 발생할 수 있습니다: 2. 발생 시점 Spring 애플리케이션 종료 중, 별도 쓰레드 또는 병렬 처리 중에 ApplicationContext.getBean() 을 호출하는 경우에 발생합니다. 예를 들어 다음은 비동기 처리 로직 내에서 Bean을 호출한 경우입니다: 3. 주요 원인 4. 해결 방법 4.1 Bean 사전 주입 더 읽기

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 해당 오류는 더 읽기