컨트롤러에서 스프링 배치 작업 실행
컨트롤러에서 배치 작업을 실행하려고 합니다.cron 작업에 의해 실행되거나 특정 링크에 액세스하여 실행됩니다.저는 스프링 부트를 사용하고 있습니다. XML은 사용하지 않고 주석만 달았습니다.
현재 설정에는 다음 콩이 포함된 서비스가 있습니다.
@EnableBatchProcessing
@PersistenceContext
public class batchService {
@Bean
public ItemReader<Somemodel> reader() {
...
}
@Bean
public ItemProcessor<Somemodel, Somemodel> processor() {
return new SomemodelProcessor();
}
@Bean
public ItemWriter writer() {
return new CustomItemWriter();
}
@Bean
public Job importUserJob(JobBuilderFactory jobs, Step step1) {
return jobs.get("importUserJob")
.incrementer(new RunIdIncrementer())
.flow(step1)
.end()
.build();
}
@Bean
public Step step1(StepBuilderFactory stepBuilderFactory,
ItemReader<somemodel> reader,
ItemWriter<somemodel> writer,
ItemProcessor<somemodel, somemodel> processor) {
return stepBuilderFactory.get("step1")
.<somemodel, somemodel> chunk(100)
.reader(reader)
.processor(processor)
.writer(writer)
.build();
}
}
내가 그것을 넣자마자.@Configuration
내 batchService 클래스 위에 주석을 추가하면 응용 프로그램을 실행하는 즉시 작업이 시작됩니다.성공적으로 끝났습니다, 모든 것이 괜찮습니다.이제는 @Configuration 주석을 제거하고 원할 때마다 실행하려고 합니다.컨트롤러에서 발사할 수 있는 방법이 있습니까?
감사합니다!
src/main/resources에 application.yml 파일을 생성하고 다음 구성을 추가해야 합니다.
spring.batch.job.enabled: false
이렇게 변경하면 Spring Boot을 시작할 때 배치 작업이 자동으로 실행되지 않습니다.특정 링크가 발생하면 배치 작업이 트리거됩니다.
여기에서 샘플 코드를 확인하십시오. https://github.com/pauldeng/aws-elastic-beanstalk-worker-spring-boot-spring-batch-template
다음을 사용하여 프로그래밍 방식으로 배치 작업을 시작할 수 있습니다.JobLauncher
컨트롤러에 주입할 수 있습니다.다음 컨트롤러 예제를 포함한 자세한 내용은 Spring Batch 설명서를 참조하십시오.
@Controller
public class JobLauncherController {
@Autowired
JobLauncher jobLauncher;
@Autowired
Job job;
@RequestMapping("/jobLauncher.html")
public void handle() throws Exception{
jobLauncher.run(job, new JobParameters());
}
}
Spring Boot을 사용하고 있으므로 다음을 수행해야 합니다.@Configuration
시작할 때 작업을 시작하지 않도록 application.properties를 구성합니다.시작 시(또는 시작하지 않을 때) 작업을 실행하기 위한 자동 구성 옵션에 대한 자세한 내용은 Spring Boot 설명서에서 확인할 수 있습니다. http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/ #how to-spring-spring-spring-spring-spring-spring-spring-spring-on-spring-slink-on-on-startup
언급URL : https://stackoverflow.com/questions/28566341/run-spring-batch-job-from-the-controller
'programing' 카테고리의 다른 글
ASP.NET 임시 파일 정리 (0) | 2023.06.21 |
---|---|
'import.meta' 메타 속성은 '--module' 옵션이 'es2020', 'esnext' 또는 'system'.ts(1343)인 경우에만 허용됩니다. (0) | 2023.06.21 |
Mongoose를 사용하여 검색 또는 생성 (0) | 2023.06.21 |
파이어베이스의 FCM 토큰이란 무엇입니까? (0) | 2023.06.21 |
고정 너비를 설정하는 방법은 무엇입니까? (0) | 2023.06.21 |