====== 작업그룹 예제 ======
===== 개요 =====
배치 수행 시, 업무에 따라 필요한 일련의 Job들을 구분하기 위해서 이를 카테고리화 하여 관리 하는 기능을 보여주는 예제이다.
===== 설명 =====
==== 설정 ====
=== Job 설정 ===
== 작업그룹 예제에서는 다른 예제에서 사용되는 delegatingJob 을 사용한다. ==
Job 의 구성은 일반적인 Chunk 설정이 있다.
=== Launcher 설정 ===
== 작업그룹 예제의 Launcher 설정 파일인 group-job-launcher-context 를 확인한다. ==
✔ Job 그룹기능을 사용하기 위해서는 JobRegistryBeanPostProcessor 클래스와 관련한 빈에 ‘groupName’ 이라는 프로퍼티로 그룹명을 추가하면 된다.
==== JunitTest 구성 및 수행 ====
=== JunitTest 구성 ===
== group-job-launcher-context 설정과 수행할 배치 Job인 delegatingJob 설정들로 Junit Test를 수행한다. 이 때 배치가 수행되고, 관련된 내용을 확인할 수 있다.==
✔ JunitTest 클래스의 구조는 [[egovframework:rte2:brte:batch_example:run_junit_Test|배치실행환경 예제 Junit Test 설명]]을 참고한다.
\\ ✔ assertEquals("[testJobGroup.delegateJob]",jobRegistry.getJobNames().toString()) : Job 이름이 [그룹명.Job 이름] 형식으로 저장됨을 확인한다.
@ContextConfiguration(locations = { "/egovframework/batch/group-job-launcher-context.xml",
"/egovframework/batch/jobs/delegatingJob.xml",
"/egovframework/batch/job-runner-context.xml" })
public class EgovJobGroupDelegatingJobFunctionalTests {
...
@Test
public void testLaunchJob() throws Exception {
jobLauncherTestUtils.launchJob();
assertTrue(personService.getReturnedCount() > 0);
assertEquals(personService.getReturnedCount(), personService.getReceivedCount());
assertEquals("[testJobGroup.delegateJob]",jobRegistry.getJobNames().toString());
}
}
===JunitTest 수행===
== ==
수행방법은 [[egovframework:dev2:tst:test_case#Test Case 실행| JunitTest 실행]]을 참고한다.
==== 결과확인 ====
=== ===
콘솔창의 로그를 확인하면 Launcher 설정파일에서 지정한 groupName(testJobGroup)이 Job 이름 앞에서 식별되는 카테고리명으로 쓰이는 것을 확인할 수 있다.
{{:egovframework:rte2:brte:batch_example:jobgroup1.png|}}
===== 참고자료 =====
* [[egovframework:rte2:brte:batch_core:job_registry|JobRegistry]]