* SecondBatch 작성 완료 close #1

This commit is contained in:
kimjihun
2024-07-30 22:59:25 +09:00
parent 6550e74900
commit 25f167fc3f
3 changed files with 29 additions and 5 deletions

View File

@@ -11,11 +11,13 @@ import org.springframework.batch.item.ItemProcessor;
import org.springframework.batch.item.data.RepositoryItemReader; import org.springframework.batch.item.data.RepositoryItemReader;
import org.springframework.batch.item.data.RepositoryItemWriter; import org.springframework.batch.item.data.RepositoryItemWriter;
import org.springframework.batch.item.data.builder.RepositoryItemReaderBuilder; 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.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.PlatformTransactionManager;
import java.util.Collections;
import java.util.Map; import java.util.Map;
@Configuration @Configuration
@@ -44,6 +46,9 @@ public class SecondBatch {
return new StepBuilder("secondStep", jobRepository) return new StepBuilder("secondStep", jobRepository)
.<WinEntity, WinEntity> chunk(10, platformTransactionManager) .<WinEntity, WinEntity> chunk(10, platformTransactionManager)
.reader(winReader())
.processor(trueProcessor())
.writer(winWriter())
.build(); .build();
} }
@@ -54,6 +59,7 @@ public class SecondBatch {
.name("winReader") .name("winReader")
.pageSize(10) .pageSize(10)
.methodName("findByWinGreaterThanEqual") .methodName("findByWinGreaterThanEqual")
.arguments(Collections.singletonList(10L))
.repository(winRepository) .repository(winRepository)
.sorts(Map.of("id", Sort.Direction.ASC)) .sorts(Map.of("id", Sort.Direction.ASC))
.build(); .build();
@@ -62,12 +68,18 @@ public class SecondBatch {
@Bean @Bean
public ItemProcessor<WinEntity, WinEntity> trueProcessor() { public ItemProcessor<WinEntity, WinEntity> trueProcessor() {
return item -> {
item.setReward(true);
return item;
};
} }
@Bean @Bean
public RepositoryItemWriter<WinEntity> winWriter() { public RepositoryItemWriter<WinEntity> winWriter() {
return new RepositoryItemWriterBuilder<WinEntity>()
.repository(winRepository)
.methodName("save")
.build();
} }
} }

View File

@@ -37,5 +37,17 @@ public class MainController {
return "ok"; 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 //https://docs.spring.io/spring-batch/reference/job/configuring-launcher.html
} }

View File

@@ -1,11 +1,11 @@
package com.example.springbatch.repository; package com.example.springbatch.repository;
import com.example.springbatch.entity.WinEntity; 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 org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional;
public interface WinRepository extends JpaRepository<WinEntity, Long> { public interface WinRepository extends JpaRepository<WinEntity, Long> {
Optional<WinEntity> findByWinGreaterThanEqual(Long win); Page<WinEntity> findByWinGreaterThanEqual(Long win, Pageable pageable);
} }