====== 배치 템플릿을 이용한 EgovCommandLineRunner 예제 ====== ===== 개요 ===== CommandLine 배치 템플릿 프로젝트를 이용하여 EgovCommandLineRunner의 사용법을 보여주는 예제이다. ===== 설명 ===== ==== 설정 ==== === CommandLine 배치 템플릿 프로젝트 생성 === == 아래를 참고하여 File(SAM) / DB 타입의 CommandLine 배치 템플릿 프로젝트 를 생성한다. == - [[egovframework:dev2:bdev:imp:batch_template_wizard:sam_commandline_template_mgmt | File(SAM)타입]] - [[egovframework:dev2:bdev:imp:batch_template_wizard:db_commandline_template_mgmt | DB타입 ]] === CommandLine 배치 템플릿 전체 설정 === == CommandLine 배치 템플릿 설정 파일인 context-commandline.xml을 확인한다. == ✔ CommandLine 배치 템플릿 실행에 필요한 xml 정보가 기술되어 있다. \\ ✔ Job 관련 xml의 경우 특정 폴더 밑에 Job당 하나의 xml 파일로 나누어져 있다. == CommandLine 배치 템플릿 설정 파일인 context-batch-datasource.xml을 확인한다. == ✔ datasource 관련 정보가 기술되어 있다. classpath:/egovframework/batch/properties/globals.properties ... DBMS별 설정 ... == CommandLine 배치 템플릿 설정 파일인 context-batch-job-launcher.xml을 확인한다. == ✔ JobLauncher, JobOperator, JobRepository, JobRegistry, JobExplorer 정보가 기술되어 있다. == CommandLine 배치 템플릿 설정 파일인 context-batch-sqlmap.xml을 확인한다. == ✔ SQLMapClient 정보가 기술되어 있다. ==== EgovCommandLineJobRunner 구성 및 수행 ==== === EgovCommandLineJobRunner 구성 === == EgovCommandLineJobRunner는 CommandLine 상에서 실행되어야 하기 때문에 main() 메소드를 지니고 있다. 이 메소드 안에서 EgovCommandLineRunner를 이용하여 Job을 실행한다. == CommandLine상에서 실행하기 위해서는 jobPath와 jobIdentifier을 인수로 받아야 하며, 추가적으로 jobParameter를 인수로 전달 받아서 실행 가능하다. \\ ✔ EgovCommandLineJobRunner의 main() 메소드내에는 main() 메소드가 받아들인 args에서 jobPath, jobIdentifier, jobParameters, option을 분리하는 기능이 구현되어 있다. public static void main(String[] args) throws Exception { EgovCommandLineRunner command = new EgovCommandLineRunner(); ... 중략 ... if (jobPath == null || jobIdentifier == null) { String message = "At least 2 arguments are required: JobPath and jobIdentifier."; logger.error(message); command.setMessage(message); command.exit(1); } String[] parameters = params.toArray(new String[params.size()]); int result = command.start(jobPath, jobIdentifier, parameters, opts); command.exit(result); } === EgovCommandLineJobRunner 수행 === 1. CommandLine 배치 템플릿 프로젝트를 선택한다. {{:egovframework:rte2:brte:batch_core:commandling1.png|}} 2. 메뉴 표시줄에서 **Run** > **Run Configuration** 을 선택한다. {{:egovframework:rte2:brte:batch_core:commandling2.png|}} 3. Argument 탭을 선택하여 아래와 같이 **jobPath**와 **jobIdentifier**를 입력한다. **jobIdentifier** 뒤에 붙은 Argument는 **Job Parameter**로 사용되며, 여러 개의 Argument를 넣을 수 있다. /egovframework/batch/context-commandline.xml delimitedToDelimitedJob inputFile=egovframework/batch/data/inputs/csvData.csv {{:egovframework:rte2:brte:batch_core:commandling3.png|}} ✔ 위 화면처럼 Argument와 Argument 사이는 반드시 스페이스로 구분해야 한다.\\ ✔ CommandLine 배치 템플릿 프로젝트에서 기본적으로 제공하는 jobIdentifier(**Job의 이름**)는 [[egovframework:dev2:bdev:imp:batch_template_wizard:sam_commandline_template_mgmt#참고사항|File(SAM) 타입에서 제공하는 Job의 종류 ]]와 [[egovframework:dev2:bdev:imp:batch_template_wizard:sam_commandline_template_mgmt#참고사항|DB 타입에서 제공하는 Job의 종류 ]]를 참고한다. 4. 메뉴 표시줄에서 **Run** > **Run** 을 선택한다. {{:egovframework:rte2:brte:batch_core:commandling4.png|}} ==== 결과확인 ==== Console 창에서 Job이 실행되어 **Completed**로 종료되었음을 확인한다. {{:egovframework:rte2:brte:batch_core:commandling5_red.png|}} ===== 참고자료 =====