개요

<aside> 💡 새 배치 수행은 막고, 현재 수행중인 배치가 종료될때까지 기다리는 Graceful Shutdown이 필요합니다

</aside>

기존 명령어 분석

pkill 명령어 분석

Quartz Graceful Shutdown

Job Interrupt를 통한 Job Scheduler Gracefull Stop 구현하기

  1. SmartLifeCycle 인터페이스 내에 stop() 메서드 존재
  2. 구현시, 현재 실행중인 모든 job에 interrupt 메서드 호출
  3. InterrupableJob 인터페이스 내에 interrupt() 메서드 존재
  4. 기존 Job들을 모두 InterrupableJob의 구현체로 만들어서 interrupt 구현

Batch Graceful Shutdown

SIGTERM 핸들러 작성

[spring batch] Shutting Down Spring Batch Jobs Gracefully