From 9d17f7c7f0f3e533173283f0ae792f95e50754e9 Mon Sep 17 00:00:00 2001 From: choiseonkang Date: Wed, 9 Aug 2023 09:46:43 +0900 Subject: [PATCH] =?UTF-8?q?[#62]=20feat=20:=20chunk=20size=20=EC=9C=A0?= =?UTF-8?q?=EC=97=B0=ED=95=9C=20=EC=84=A4=EC=A0=95=EC=9D=84=20=EC=9C=84?= =?UTF-8?q?=ED=95=B4=20=ED=8C=8C=EB=9D=BC=EB=AF=B8=ED=84=B0=20=EB=B0=9B?= =?UTF-8?q?=EA=B8=B0=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/flab/goodchoicebatch/FailedCoupon.java | 14 ++++++-------- .../com/flab/goodchoicebatch/FailedCouponTest.java | 5 ++++- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/goodchoice-batch/src/main/java/com/flab/goodchoicebatch/FailedCoupon.java b/goodchoice-batch/src/main/java/com/flab/goodchoicebatch/FailedCoupon.java index 1824050..d94a783 100644 --- a/goodchoice-batch/src/main/java/com/flab/goodchoicebatch/FailedCoupon.java +++ b/goodchoice-batch/src/main/java/com/flab/goodchoicebatch/FailedCoupon.java @@ -27,28 +27,26 @@ public class FailedCoupon { private final EntityManagerFactory entityManagerFactory; private final CouponBatchWriterRepository couponBatchWriterRepository; - private static final int chunkSize = 10; - @Bean public Job failedCouponJob() { return jobBuilderFactory.get("failedCouponJob") - .start(failedCouponStepJob()) + .start(failedCouponStepJob(null)) .build(); } @Bean @JobScope - public Step failedCouponStepJob() { + public Step failedCouponStepJob(@Value("#{jobParameters[chunkSize]}") Long chunkSize) { return stepBuilderFactory.get("failedCouponStepJob") - .chunk(chunkSize) - .reader(failedCouponReader(null)) + .chunk(chunkSize.intValue()) + .reader(failedCouponReader(null, null)) .writer(failedCouponWriter()) .build(); } @Bean @StepScope - public JpaPagingItemReader failedCouponReader(@Value("#{jobParameters[couponId]}") Long couponId) { + public JpaPagingItemReader failedCouponReader(@Value("#{jobParameters[couponId]}") Long couponId, @Value("#{jobParameters[chunkSize]}") Long chunkSize) { JpaPagingItemReader reader = new JpaPagingItemReader() { @Override public int getPage() { @@ -57,7 +55,7 @@ public int getPage() { }; reader.setQueryString("SELECT c FROM CouponIssueFailedEntity c WHERE c.restoredYn = false AND c.couponId = " + couponId + " order by c.id asc"); - reader.setPageSize(chunkSize); + reader.setPageSize(chunkSize.intValue()); reader.setEntityManagerFactory(entityManagerFactory); reader.setName("reader"); diff --git a/goodchoice-batch/src/test/java/com/flab/goodchoicebatch/FailedCouponTest.java b/goodchoice-batch/src/test/java/com/flab/goodchoicebatch/FailedCouponTest.java index 01664c7..6665724 100644 --- a/goodchoice-batch/src/test/java/com/flab/goodchoicebatch/FailedCouponTest.java +++ b/goodchoice-batch/src/test/java/com/flab/goodchoicebatch/FailedCouponTest.java @@ -72,7 +72,10 @@ void failedCouponJob() throws Exception { .build(); couponIssueFailedRepository.save(couponIssueFailedEntity); - JobParameters parameters = new JobParametersBuilder().addLong("couponId", couponEntity.getId()).toJobParameters(); + JobParameters parameters = new JobParametersBuilder() + .addLong("couponId", couponEntity.getId()) + .addLong("chunkSize", 10L) + .toJobParameters(); JobExecution jobExecution = jobLauncherTestUtils.launchJob(parameters);