수동

2017-05-02 2 views
0

내가 내가 석영 시도 자동으로수동

import org.springframework.batch.core.Job; 
    import org.springframework.batch.core.JobExecution; 
    import org.springframework.batch.core.JobParameters; 
    import org.springframework.batch.core.JobParametersBuilder; 
    import org.springframework.batch.core.launch.JobLauncher; 
    import org.springframework.beans.factory.annotation.Autowired; 
    import org.springframework.context.annotation.Import; 
    import org.springframework.scheduling.annotation.Scheduled; 
    import org.springframework.web.bind.annotation.RequestMapping; 
    import org.springframework.web.bind.annotation.RestController; 

    @RestController 
    @EnableScheduling 
    public class RunScheduler { 
     @Autowired 
     private JobLauncher jobLauncher; 

     @Autowired 
     private Job job; 

     @RequestMapping("collector/test") 
     @Scheduled(fixedRate = 5000) 
     public void run() { 

      try { 

       String dateParam = new Date().toString(); 
       JobParameters param = new JobParametersBuilder().addString("date", dateParam).toJobParameters(); 

       System.out.println(dateParam); 

       JobExecution execution = jobLauncher.run(job, param); 
       System.out.println("Exit Status : " + execution.getStatus()); 

      } catch (Exception e) { 
       e.printStackTrace(); 
      } 

     } 

하지 필요한 경우에만 예약 된 작업을 실행하려는하지만 난이 autowire가 주석으로 인한 많은 오류가 예약 된 작업을 해고하는 방법, 는

을 수행하는 방법
+0

그리고 무엇이 오류입니까? 스택 추적을 제공하십시오. –

+0

예약 작업을 수동으로 시작 (실행하지 않음) 하시겠습니까? 즉 콜렉터/테스트를 호출 할 때까지 예약 된 작업이 시작되지 않아야합니다. 이 엔드 포인트를 호출하면 5 초마다 실행되어야합니다. 이것이 요구 사항입니까? – pvpkiran

+0

문제는 내가 내 springboot 응용 프로그램을 실행할 때 예약 된 작업이 자동으로 실행되도록 시작하는 것입니다. 나는 수집기/테스트를 호출 할 때만 예약 된 작업을 실행하려고합니다. – user3264038

답변

-2

@Scheduled 주석을 run 메소드에서 제거하십시오. 이 어노테이션은 메소드가 주기적으로 호출되도록합니다.

예약 된 작업을 수동으로 실행하려면 쿼츠 스케줄러 API 또는 해당 스프링 래퍼를 사용하고 작업을 호출 할시기를 완전히 제어하십시오.

+1

이것은 도움이되지 않습니다. 그는 현재 일정을 유지하면서 필요한 경우 수동으로 작업을 호출하려고합니다. –