Spring Batch를 사용하여 작업을 수행 할 REST 메서드를 개발 중입니다.
간단한 직업이 정의되어 있습니다.
<job id="myIndexJob" xmlns="http://www.springframework.org/schema/batch">
<step id="step1">
<tasklet>
<chunk reader="myIndexItemReader" processor="myIndexItemProcessor" writer="myIndexItemWriter" commit-interval="1" />
</tasklet>
</step>
</job>
이 직업은 제가 이전에 게시 한 질문을 모방합니다.
Spring Batch ItemReader 목록은 한 번만 처리됩니다.
하지만 이번에는 일정에 따라 작업을 실행하는 대신 REST 호출을 통해 수동으로 실행하고 싶습니다.
내가 가지고있는 문제 List
는 myIndexItemReader
. 내 REST 호출은 List
일부 쿼리 문자열을 기반으로 생성됩니다 . 내가 게시 한 이전 질문 List
은 단계가 실행될 때마다 XML의 스프링 빈을 통해 전달되었습니다.
이런 식으로하고 싶습니다.
@RequestMapping(value="/rest/{regex}", method=RequestMethod.GET)
public void run(@PathVariable String regex) {
List<String> myList = new ArrayList<>();
myList.add("something");
long nanoBits = System.nanoTime() % 1000000L;
if (nanoBits < 0) {
nanoBits *= -1;
}
String dateParam = new Date().toString() + System.currentTimeMillis()
+ "." + nanoBits;
JobParameters param = new JobParametersBuilder()
.addString("date", dateParam)
.toJobParameters();
JobExecution execution = jobLauncher.run(job, param);
}
하지만 난 그냥 전달하는 방법을 모르는 myList
받는 myIndexItemReader
.
지금 은 콜백 을 생성 RepeatTemplate
하고 호출 iterate
하여 이를 수행 할 수 있지만 작업 chunk
이 더 깔끔해 보입니다.
누구든지 어떤 아이디어 나 제안이 있습니까? 감사합니다 / w
나는 대체 접근 방식을 취하고 REST 기준에 따라 데이터베이스 테이블에 정보를 저장했습니다. 그런 다음 ItemReader
테이블을 읽고 각 실행 후 정리했습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다