Spring (5) 썸네일형 리스트형 [Spring Batch] ItemWriter JdbcBatchItemWriter ORM을 사용하지 않는 경우 Writer는 대부분 JdbcBatchItemWriter를 사용 @Bean public JdbcBatchItemWriter jdbcBatchItemWriter() { String sql = "INSERT INTO User(name, address) values (:name, :address)"; return new JdbcBatchItemWriterBuilder() .dataSource(dataSource) //DataSource DI .sql(sql) .beanMapped() .build(); } RepositoryItemWriter @Bean public RepositoryItemWriter repositoryItemWriter() { .. [Spring Batch] ItemReader 방식 Cursor 방식 : Database에서 데이터를 Streaming Paging 방식 : 페이지 단위로 한번에 데이터를 조회 JdbcCursorItemReader @Bean public JdbcCursorItemReader jdbcCursorItemReader() { String sql = "SELECT id, name, address FROM User"; return new JdbcCursorItemReaderBuilder() .fetchSize(10) .dataSource(dataSource) //DataSource DI .rowMapper(new BeanPropertyRowMapper(User.class)) .sql(sql) .name("jdbcCursorItemReader") .build().. [Spring Batch] Dynamic Scheduler 다이나믹 스케쥴링 Spring Batch를 개발하면서 서버가 Zookeeper로 클러스터링 되어있을 때 Master인 노드만 스케쥴링을 시작하도록 구현하고 싶었다. 따라서 처음에 자동으로 Start 하지 못하도록 설정하고, Master일 때 스케쥴링을 Start 해주도록 할 예정이다. 먼저, 스케쥴러는 서버가 시작할 때 자동으로 실행하게 된다. 이것을 막으려면 bootstrap.yml에 설정하나만 추가하면 된다. spring: batch: job: enabled: false 두번째로 DynamicAbstractScheduler를 구현하여 start / stop 할 수 있는 클래스를 만들 것이다. public abstract class DynamicAbstractScheduler { private ThreadPoolTask.. [Spring Batch] MongoItemWriter 구현 MongoItemWriter를 사용하면 Chunk 사이즈로 bulk 삽입이 되지 않고 한 row 씩 저장되는 것을 확인했다. bulk로 저장할 수 있도록 custom 하여 사용해보려고 한다. MongoItemWriter MongoItemWriter의 doWrite를 보면 아래와 같다. protected void doWrite(List [개념] Spring Batch 란? Spring Batch 란? 벡엔드의 배치처리 기능을 구현하는 데 사용하는 프레임워크 Job Batch에서 실행 가능한 실행 단위. 여러 개의 Step을 포함하고 있는 객체. JobBuilderFactory로 원하는 Job을 쉽게 만들 수 있음. JobLauncher Job을 실행하는 책임이 있다. JobRepository를 통해 Job, Step, Item* 등을 생성하고 조립. JobRepository DB 또는 어딘가에 저장된 Job, Step 등을 조회(select) 또는 생성(insert), 수정(update). 어떤 Job이 실행되었으며 몇 번 실행되었고 언제 끝났는지 등 배치 처리에 대한 메타데이터 저장 예를 들어 Job 하나가 실행되면 JobRepository에서는 배치 실행에 관련된 정보.. 이전 1 다음