본문 바로가기
728x90
반응형

spring/spring batch4

[Spring Batch] batch step에서 processor chaining하는 방법 다음과 같은 batch step이 존재할 때, processor를 추가하기 위해선 어떻게 해야 할까요? @Bean public Job ioSampleJob() { return this.jobBuilderFactory.get("ioSampleJob") .start(step1()) .build(); } @Bean public Step step1() { return this.stepBuilderFactory.get("step1") .chunk(2) .reader(fooReader()) .processor(fooProcessor()) .writer(barWriter()) .build(); } public class Foo {} public class Bar { public Bar(Foo foo) {} } pub.. 2022. 2. 4.
[Spring Batch] org.springframework.dao.EmptyResultDataAccessException: Item 0 of 3 did not update any rows Spring Batch 실행 시 아래와 같은 오류가 발생했습니다. org.springframework.dao.EmptyResultDataAccessException: Item 0 of 3 did not update any rows: [...] at org.mybatis.spring.batch.MyBatisBatchItemWriter.write(MyBatisBatchItemWriter.java:161) at org.springframework.batch.core.step.item.SimpleChunkProcessor.writeItems(SimpleChunkProcessor.java:193) at org.springframework.batch.core.step.item.SimpleChunkProcessor... 2021. 11. 18.
[Spring Batch] step 중지/통과 하기 Step 실행 중일 때 다음 단계로 넘어가지 않고 중지하는 방법은 throw 하면 됩니다. public class PoisonPillItemProcessor implements ItemProcessor { @Override public T process(T item) throws Exception { if (isPoisonPill(item)) { throw new PoisonPillException("Poison pill detected: " + item); } return item; } } 이번 단계는 지나치고 다음 단계로 넘어가는 방법은 null을 리턴하면됩니다. public class PoisonPillItemProcessor implements ItemProcessor { @Override pub.. 2021. 10. 21.
[SpringBoot] Spring Batch Test를 위한 Configuration - Spring Batch Test 공식 문서 (한국어 번역) ​ 공식 문서에 나와있는 batch job의 end to end 테스트 예제는 다음과 같습니다. @SpringBatchTest @RunWith(SpringRunner.class) // 스프링 JUnit 기능을 사용하겠다는 표시 @ContextConfiguration(classes = SimpleJobConfiguration.class) // ApplicationContext에 설정할 리소스 명시 public class SimpleJobTest { @Autowired private JobLauncherTestUtils jobLauncherTestUtils; @Test public void simple_job_테스트() throws Excepti.. 2020. 10. 31.
728x90
반응형