2017-10-27 12 views
0

Spring 배치를 사용하여 배치 작업을 작성해야합니다.CommandLineJobRunner (Spring + Hibernate 및/또는 war 배포)를 사용하여 Spring 배치 응용 프로그램을 실행하는 방법

작업은 oracle DB에 액세스 한 다음 레코드를 가져 와서 태스크 릿에서 처리하고 결과를 커밋합니다.

봄을 사용하여 데이터를 처리하기 위해 최대 절전 모드를 사용할 계획입니다. AutoSys를 통해 작업이 실행됩니다. 진입 점으로 CommandLineJobRunner를 사용하고 있습니다.

(추가 정보 - 나는 5.0 최대 절전 모드, DynamicWebProject가 Gradle을, STS, 봄 4.0로 변환 사용하고, NO 봄 부팅)

나는 몇 가지 질문이 /이 전체 응용 프로그램에 대한 의심. 그들은 더 많은 환경/배치를 지향합니다.

  1. 모든 콩 (스프링 및 최대 절전 모드)을 인스턴스화하려면이 전체 응용 프로그램을 Tomcat (또는 모든 서버)의 전쟁으로 배포해야합니까?
  2. 그렇다면 CommandLineJobRunner를 사용하여 작업을 어떻게 시작할 수 있습니까?
  3. 없다면 ClassPathXmlApplicationContext를 사용하여 main 메소드에서 빈을 수동으로 인스턴스화해야한다. 이 경우 작업을 어떻게해야합니까? jar 파일을 생성해야합니까 (필수 항목입니까)?
  4. 명령 줄에서 어떻게 이러한 작업을 테스트 할 수 있습니까? CommandLineJobRunner를 사용하여 작업을 실행하는 동안 jar (spring, hibernate 등의 의존성)를 전달해야합니까?

일괄 작업이 처음인데 모든 의견은 도움이 될 것입니다.

덕분에

답변

0
  • 어떤 서버는 스프링 배치 애플리케이션에 필요하지 않습니다.
  • jobLauncher 빈을 사용하여 작업을 시작할 수 있습니다. 아래 샘플 코드입니다.

    공용 클래스 MyJobLauncher {

    public static void main(String[] args) { 
        GenericApplicationContext context = new AnnotationConfigApplicationContext(MyBatchConfiguration.class); 
        JobLauncher jobLauncher = (JobLauncher) context.getBean("jobLauncher"); 
        Job job = (Job) context.getBean("myJobName");//this is bean name of your job 
        JobExecution execution = jobLauncher.run(job, jobParameters); 
    } 
    

    } 당신은 단지를 만들어야합니다

. 또한 필요한 다른 모든 항아리도 필요합니다. 이 경우에는 maven maven assembly plugin을 사용할 수 있습니다.

+0

감사합니다. 나는 Maven 어셈블리 플러그인을 시도 할 것이다. 작업을 생성하고 지정한 코드 구조를 사용합니다. 나는 오늘 일자리를 구하려고 노력할 것이다. – Darshan