[질문] 스프링 배치 스탭간 데이터 공유 관련해서 질문드립니다.

2017-03-23 08:05

안녕하세요 회사에서 스프링 배치를 이용해서 배치성 프로그램을 만들고 있습니다.

제가 스탭별로 해야할 일을 명확히 하기 위해 스탭을 4단계 정도로 나누어 잡을 돌리고 있는데요

스탭끼리 공유할 데이터가 있어서 stepExecution의 exectionContext에 데이터를 담아서 공유를 하도록 개발을 했는데요

이 과정에서 제가 스프링 배치가 메타데이터를 DB에 남기는 이슈를 고려하지 못했습니다.

공유를 위한 데이터의 크기가 굉장히 큰 이슈가 있는데 이 때문에 BATCH_STEP_EXCUTION_CONTEXT 테이블에 데이터를 남길때(SERIALIZED_CONTEXT필드에 데이터를 남기게 됩니다.) 성능상 이슈가 있습니다. (일단 batch schema를 디폴트 스키마를 보지 않고 커스터마이징 하여 데이터가 저장되긴 하도록 필드 타입을 바꾸어 주었습니다. bacth db는 hsqldb를 쓰도록 설정해주었구요)

질문드리고 싶은것은 2가지 정도입니다.

첫번째는 메타데이터를 남길때, 이처럼 데이터가 큰 (SERIALIZED_CONTEXT 필드) 는 메타데이터를 남기지 않도록 설정이 가능한지 궁금합니다.

그리고 두번째는 스탭간 데이터를 공유할때 공유를 위한 Bean을 DI해준 후에 해당 빈에 멤버변수를 두어 이를 통해서 스탭간 데이터를 공유하는 쪽으로 리펙토링을 진행하려 하는데 올바른 방법인지 궁금합니다.

감사합니다.

오늘하루도 좋은하루 되세요!

0개의 의견 from SLiPP

의견 추가하기

연관태그

← 목록으로