2012-06-08 6 views

답변

2

예 너는 할 수있어. Spring Batch는 JobParameters를 기반으로 작업을 구분합니다. 따라서 항상 동일한 JobParameters를 동일한 작업에 전달하면 동일한 작업의 여러 인스턴스가 실행됩니다. 간단한 방법은 각 요청에 UUID 매개 변수를 추가하여 작업을 시작하는 것입니다. 예 :

final JobParametersBuilder jobParametersBuilder = new JobParametersBuilder(); 
jobParametersBuilder.addString("instance_id", UUID.randomUUID().toString(), true); 
jobLauncher.run(job,jobParametersBuilder.toJobParameters()); 

부울 작업의 인스턴스의 '정체성'의 일환으로이 매개 변수를 사용하여 일괄 봄에 마지막 신호에서 '진실', 그래서 당신은 항상 각각의 새로운 인스턴스를 얻을 것이다 ' 그 일을 '도망쳐 라'.

+0

답변을 주셔서 감사합니다, Antonio Dias. 우리는 임의의 ID 대신 작업 매개 변수의 일부로 타임 스탬프를 추가했습니다. –

0

예, 작업의 여러 인스턴스 (또는 실행)를 동시에 실행할 수 있습니다.

+0

하지만 어떻게? Im은 오류가 발생하기 때문에 : 'Cant instanciate Reader'... –

1

예를 병렬로 매우 실행 작업이 아니라도 here

을 문서화 할 수 있지만

  • 애플리케이션 로직이 병렬 실행을 필요로 하는가

    을 고려해야 할 어떤 일이 있습니까? 병렬 단계를 실행하려는 경우 병렬 단계에서 수행 한 작업이 겹치지 않도록주의해야합니다 (응용 프로그램의 의도가 아니라면).
+0

이것은 오래된 질문입니다. OP가 "동일한 [작업]의 여러 인스턴스"를 병렬로 실행할 수 있는지 묻고 싶습니다. 제공 한 링크는 다른 개념 인 병렬 실행의 단일 실행 내에서 단계를 실행하는 것을 의미합니다. – IcedDante

관련 문제