티스토리 뷰
일전에 Spring Batch가 수행을 하다가 실패를 해도 Jenkins에서는 SUCCESS를 찍는 문제가 있다고 글을 쓴적이 있다.
이런 글인데 이것은 어플리케이션을 수행하고 성공이든 실패든 Jenkins의 Job은 SUCCESS로 출력을 하는데 이 과정의 로그를 분석하여 Jenkins의 Job의 상태를 변경해주는 방법이었다. 어떻게 보면 원칙적인 방법이 아니라 꼼수였다.
그리고 위와 같은 문제는 exitCode를 사용해서 간단히 해결할 수 있었다.
BatchApplication.java
public static void main(String[] args) {
int exitCode = 0;
try {
exitCode = SpringApplication.exit(SpringApplication.run(BootBatchApplication.class, args));
} catch (Exception e) {
exitCode = 5;
} finally {
System.exit(exitCode);
}
}
이런 식으로 batch application 을 수행하며 일어나는 모든 오류는 exitCode가 5가 된다. exitCode가 5이면 Jenkins에서도 이를 SUCCESS가 아닌 UNSTABLE 상태로 인식하게 된다.
Jenkins의 Job이 UNSTABLE로 끝났기 때문에 후속 작업으로 다양한 액션을 취할수 있게 되었다.
끝!
'Framework > Batch' 카테고리의 다른 글
Springboot Batch Jar 파일 생성 및 실행 (0) | 2021.03.24 |
---|---|
[Spring Batch] Chunk Example (DB to File, Springboot based) (0) | 2021.03.10 |
Spring Batch jobParameters 사용하는 방법 (with @JobScope, @StepScope) (0) | 2020.11.04 |
[Spring Batch] Skip/Retry Simple Example (Springboot based) (0) | 2020.10.27 |
[Spring Batch] Parallel(병렬처리) Example (Springboot based) (0) | 2020.10.27 |
댓글