====== JobOperator ====== ===== 개요 ===== JobOperator는 JobRegistry, JobExplorer, JobLauncher, JobRepository 클래스를 통해 Job의 InstanceId, ExecutionId, JobName을 이용하여 job을 제어하여 일반적인 모니터링 작업을 위해 사용한다. ===== 설명 ===== JobOperator는 배치운영자가 의해 이루어지는 배치작업의 stopping, restarting, 또는 summarizing와 같은 모니터링 작업을 제공한다. Spring 배치는 JobOperator 인터페이스를 통해 아래의 작업의 유형을 제공한다. public interface JobOperator { List getExecutions(long instanceId) throws NoSuchJobInstanceException; List getJobInstances(String jobName, int start, int count) throws NoSuchJobException; Set getRunningExecutions(String jobName) throws NoSuchJobException; String getParameters(long executionId) throws NoSuchJobExecutionException; Long start(String jobName, String parameters) throws NoSuchJobException, JobInstanceAlreadyExistsException, JobParametersInvalidException; Long restart(long executionId) throws JobInstanceAlreadyCompleteException, NoSuchJobExecutionException, NoSuchJobException, JobRestartException, JobParametersInvalidException; Long startNextInstance(String jobName) throws NoSuchJobException, JobParametersNotFoundException, JobRestartException, JobExecutionAlreadyRunningException, JobInstanceAlreadyCompleteException, UnexpectedJobExecutionException, JobParametersInvalidException; boolean stop(long executionId) throws NoSuchJobExecutionException, JobExecutionNotRunningException; String getSummary(long executionId) throws NoSuchJobExecutionException; Map getStepExecutionSummaries(long executionId) throws NoSuchJobExecutionException; Set getJobNames(); } JobOperator 인터페이스의 구현클래스로는 SimpleJobOperator가 제공된다. JobLauncher,JobRepository, JobExplorer 및 JobRegistry를 사용하여 아래의 기능들을 제공한다. ^ 메소드명 ^ 설 명 ^ 파라미터 ^ |getExecutions|instanceId를 이용하여 JobExecutions의 id들을 얻는다.|instanceId| |getJobInstances|start 인덱스부터 count만큼의 JobInstances의 id들을 얻는다.|jobName,int start,int count| |getRunningExecutions|jobName을 이용하여 실행중인 Job의 JobExecutions의 id을 얻는다. |jobName| |getParameters|Job의 Execution id를 이용하여 Parameters를 얻는다. |executionId| |start|Job 이름, Job Parameter를 이용하여 Job을 시작한다.|jobName,parameters| |restart|JobExecution의 ID를 이용하여, 정지되었거나 이미 종료 된 Job 중 재실행 가능한 Job 을 재시작한다.|executionId| |startNextInstance|jobName를 이용하여 다음 instance를 얻은 후 Job을 실행한다.|jobName| |stop|Job의 Execution ID를 이용하여, 실행 중인 Job을 정지시킨다.|executionId| |getSummary|Job의 Execution ID를 이용하여, JobExecution의 정보를 String 형태로 얻는다.|executionId| |getStepExecutionSummaries|Job의 Execution ID를 이용하여, Job에 해당하는 StepExecution들의 정보를 String으로 변환하여 MAP의 형태로 얻는다.|executionId| |getJobNames|실행가능한 Job들의 이름을 얻는다.| | SimpleJobOperator클래스를 이용한 JobOperator의 설정은 아래와 같다. jobLauncher, jobExplorer, jobRepository, jobRegistry의 설정이 필수이다. *[[egovframework:rte2:brte:batch_core:job_launcher|JobLauncher]]: 배치 작업을 실행한다. *[[egovframework:rte2:brte:batch_core:job_explorer|JobExplorer]]: Repository에 접근하여 배치작업에 대한 정보를 얻는다. *[[egovframework:rte2:brte:batch_core:job_repository|JobRepository]]: 수행되는 Job에 대한 정보를 담고 있는 저장소이다. *[[egovframework:rte2:brte:batch_core:job_registry|JobRegistry]]: 생성된 Job을 Map 형태로 추가, 삭제 등의 관리한다. ===== 참고자료 ===== * [[egovframework:rte2:brte:batch_example:batch_runner|배치 Runner 예제]] * [[http://static.springsource.org/spring-batch/reference/html/configureJob.html#JobOperator]]