dataflow task 관리가 안되는 현상(feat. @EnableTask)

freddie·2021년 4월 16일
0

Spring-batch

목록 보기
1/4

dataflow에 간단한 batch잡을 만들어서 실행시켰는데, 대시보드에서 Jobs 메뉴에 들어가지 않았다.

k8s환경이라 배치pod의 내용을 살펴보니 정상적으로 종료되고 COMPLETE상태로 끝난것 같았는데 이상했다.

문제 해결을 위해 dataflow-spring-cloud-dataflow-server의 팟을 들어가봤는데 이런 에러가 있었다.

2021-04-15 15:25:43.969  WARN 1 --- [nio-8080-exec-1] o.s.c.d.s.c.RestControllerAdvice         : Caught exception while handling a request: No corresponding taskExecutionId for jobExecutionId 6.  This indicates that Spring Batch application has been executed that is not a Spring Cloud Task.

뭔가 JOB에 해당하는 TASK정보를 제대로 못 가져온다는것 같았는데, spring cloud task가 아닌 환경에서 실행된 BATCH잡이라는 의미같았다.

난 분명 dataflow를 이용해서 실행했는데..

실제로 dataflow에 연동된 DB를 들어가봤는데, JOB과 TASK의 연관관계가 제대로 설정되지 않았었다.

select * from TASK_TASK_BATCH

배치와 관련된 테이블들에는 데이터가 정상적으로 들어간것 같아서 코드를 꼼꼼하게 다시 살펴본 결과 @EnableTask이 빠져있는것을 발견할 수 있었다.

공식 가이드 문서에는 아래와 같이 나와있었다.

The @EnableTask annotation sets up a TaskRepository, which stores information about the task execution (such as the start and end time of the task and the exit code).

task실행과 관련된 정보를 저장하는 기능을 활성화주는 역할을 하는데, 이걸 누락했더니 정상적으로 task로 인식하지 못하게 된 것이다.

profile
하루에 하나씩만 배워보자

0개의 댓글