본문 바로가기

spring-batch8

[spring batch 2편] FlatFileItemWriter Fixed length format 정리 (Header, Footer 사용) source 는 Github 에 있습니다. 목차는 spring batch 목차 에 있습니다. [spring batch 2편] FlatFileItemWriter Fixed length format 정리 (Header, Footer 사용) 파일을 쓸 때, Fixed length 와 Formatter 를 조합하는 예제에 대해서 정리했습니다. DTO to FixedLength format 으로 변환해서 파일을 쓰는 예제입니다. 파일을 쓸 때, Java 의 Formatter 를 사용할 수 있습니다. Source 아래 예제에서 formatted() 옵션을 주면 Java 의 Formatter 를 사용할 수 있습니다. 자바의 Formatter 는 링크 를 참고하시면 됩니다. Formatter 를 이용한다면 왼쪽 정렬,.. 2022. 8. 18.
QuerydslPagingItemReader 병렬 처리 정리 source 는 Github 에 있습니다. QuerydslPagingItemReader 병렬 처리 가능한가? QuerydslPagingItemReader 는 querydsl 을 이용하여 db 데이터를 읽어올 때, 페이지 단위로 읽어오는 컴포넌트입니다. 상세 설명 QuerydslPagingItemReader 결론부터 얘기하면 QuerydslPagingItemReader 병렬 처리 시, thread-safe 합니다. 아래 소스를 보면 QuerydslPagingItemReader 는 AbstractPagingItemReader 상속받고 있습니다. spring-bagch 내부 엔진에서 AbstractPagingItemReader 의 doRead() 를 호출하고, doRead() 내에서 QuerydslPaging.. 2021. 9. 29.
spring batch partitioner 정리 source 는 Github 에 있습니다. spring batch partitioner 정리 partitioner 개념 partitioner 는 하나의 jvm 내에서 멀티 스레드로 처리하는 방법입니다. partitioner 에서 데이터를 나누고 각 스텝에 나눈 데이터를 분배하여, 스텝에서는 분배받은 데이터를 가지고 프로그램을 수행합니다. 스레드 측면에서 보면 partitioner 라는 스레드가 데이터를 나눠서 각 스텝에 나눠주는데, 이 스텝들은 별도의 스레드에서 동작하게 됩니다. 즉, ItemReader, ItemWriter 가 thread-safe 하지 않아도 됩니다. Multi thread step 의 경우 ItemReader, ItemWriter 는 thread-safe 해야 합니다. Multi t.. 2021. 8. 18.
spring-batch commit interval 이란? spring-batch 의 ChunkedOrientedTasklet 방식이란? commit-interval 을 알아 보기 전에 ChunkedOrientedTasklet 방식을 알고 넘어 가야합니다. 이 구조는 reader - processor 가 commit-interval 만큼 반복된 후, 가공된 데이터를 writer 에서 bulk 처리하는 구조입니다. 이렇게 구조가 나온 이유는 배치 프로그램의 대부분의 형태가 입력 --> 데이터 가공 --> 쓰기 로 되있기에 이런 구조가 나온 것이라 생각됩니다. source 를 보면 아래와 같은데 reader - process 가 반복되고 bulk 데이터를 writer 하는 구조입니다. @Nullable @Override public RepeatStatus execu.. 2021. 7. 9.