Skip to content

Commit

Permalink
[#62] feat : chunk size 유연한 설정을 위해 파라미터 받기로 변경
Browse files Browse the repository at this point in the history
  • Loading branch information
zzangoobrother committed Aug 9, 2023
1 parent 4f8154c commit 9d17f7c
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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")
.<CouponIssueFailedEntity, CouponIssueFailedEntity>chunk(chunkSize)
.reader(failedCouponReader(null))
.<CouponIssueFailedEntity, CouponIssueFailedEntity>chunk(chunkSize.intValue())
.reader(failedCouponReader(null, null))
.writer(failedCouponWriter())
.build();
}

@Bean
@StepScope
public JpaPagingItemReader<CouponIssueFailedEntity> failedCouponReader(@Value("#{jobParameters[couponId]}") Long couponId) {
public JpaPagingItemReader<CouponIssueFailedEntity> failedCouponReader(@Value("#{jobParameters[couponId]}") Long couponId, @Value("#{jobParameters[chunkSize]}") Long chunkSize) {
JpaPagingItemReader reader = new JpaPagingItemReader() {
@Override
public int getPage() {
Expand All @@ -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");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down

0 comments on commit 9d17f7c

Please sign in to comment.