From 25f167fc3f0780b1ec342ae8bdf91119e67b4c28 Mon Sep 17 00:00:00 2001 From: kimjihun Date: Tue, 30 Jul 2024 22:59:25 +0900 Subject: [PATCH] =?UTF-8?q?*=20SecondBatch=20=EC=9E=91=EC=84=B1=20?= =?UTF-8?q?=EC=99=84=EB=A3=8C=20close=20#1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/springbatch/batch/SecondBatch.java | 16 ++++++++++++++-- .../springbatch/controller/MainController.java | 12 ++++++++++++ .../springbatch/repository/WinRepository.java | 6 +++--- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/example/springbatch/batch/SecondBatch.java b/src/main/java/com/example/springbatch/batch/SecondBatch.java index 1c966d4..bf2dd5c 100644 --- a/src/main/java/com/example/springbatch/batch/SecondBatch.java +++ b/src/main/java/com/example/springbatch/batch/SecondBatch.java @@ -11,11 +11,13 @@ import org.springframework.batch.item.ItemProcessor; import org.springframework.batch.item.data.RepositoryItemReader; import org.springframework.batch.item.data.RepositoryItemWriter; import org.springframework.batch.item.data.builder.RepositoryItemReaderBuilder; +import org.springframework.batch.item.data.builder.RepositoryItemWriterBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.domain.Sort; import org.springframework.transaction.PlatformTransactionManager; +import java.util.Collections; import java.util.Map; @Configuration @@ -44,6 +46,9 @@ public class SecondBatch { return new StepBuilder("secondStep", jobRepository) . chunk(10, platformTransactionManager) + .reader(winReader()) + .processor(trueProcessor()) + .writer(winWriter()) .build(); } @@ -54,6 +59,7 @@ public class SecondBatch { .name("winReader") .pageSize(10) .methodName("findByWinGreaterThanEqual") + .arguments(Collections.singletonList(10L)) .repository(winRepository) .sorts(Map.of("id", Sort.Direction.ASC)) .build(); @@ -62,12 +68,18 @@ public class SecondBatch { @Bean public ItemProcessor trueProcessor() { - + return item -> { + item.setReward(true); + return item; + }; } @Bean public RepositoryItemWriter winWriter() { - + return new RepositoryItemWriterBuilder() + .repository(winRepository) + .methodName("save") + .build(); } } diff --git a/src/main/java/com/example/springbatch/controller/MainController.java b/src/main/java/com/example/springbatch/controller/MainController.java index 6becb62..96a7a03 100644 --- a/src/main/java/com/example/springbatch/controller/MainController.java +++ b/src/main/java/com/example/springbatch/controller/MainController.java @@ -37,5 +37,17 @@ public class MainController { return "ok"; } + @GetMapping("/second") + private String secondApi(@RequestParam("value") String value) throws Exception { + + JobParameters jobParameters = new JobParametersBuilder() + .addString("date", value) + .toJobParameters(); + + jobLauncher.run(jobRegistry.getJob("secondJob"), jobParameters); + + return "ok"; + } + //https://docs.spring.io/spring-batch/reference/job/configuring-launcher.html } diff --git a/src/main/java/com/example/springbatch/repository/WinRepository.java b/src/main/java/com/example/springbatch/repository/WinRepository.java index a1b6631..91f54ad 100644 --- a/src/main/java/com/example/springbatch/repository/WinRepository.java +++ b/src/main/java/com/example/springbatch/repository/WinRepository.java @@ -1,11 +1,11 @@ package com.example.springbatch.repository; import com.example.springbatch.entity.WinEntity; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; -import java.util.Optional; - public interface WinRepository extends JpaRepository { - Optional findByWinGreaterThanEqual(Long win); + Page findByWinGreaterThanEqual(Long win, Pageable pageable); }