2012-10-16 3 views
0
public class CronTriggerExample 
{ 
public static void main(String[] args) throws Exception 
{ 
    try 
    { 
     JobDetail job = JobBuilder.newJob(HelloJob.class).withIdentity("dummyJobName", "group1").build(); 

     Trigger trigger = 
       TriggerBuilder.newTrigger().withIdentity("dummyTriggerName", "group1") 
         .withSchedule(CronScheduleBuilder.cronSchedule("0/2 * * * * ?")).build(); 

     // schedule it 
     Scheduler scheduler = new StdSchedulerFactory().getScheduler(); 
     scheduler.start(); 
     scheduler.scheduleJob(job, trigger); 
     return; 
    } 
    catch (SchedulerException e) 
    { 
     e.printStackTrace(); 
    } 
} 
} 

내 서버에 일부 cron을 설정하려면 석영을 사용하고 있습니다. 하지만이 파일을 서버에서 어떻게 실행하면 cron을 예약 할 수 있습니까? 나는 "org.codehaus.mojo"플러그인을 사용하여 자바 파일을 실행하려고 시도했다. 하지만 언제나 데몬으로 mvn install을 실행할 때 항상 새로운 방아쇠를 만듭니다. "mvn install"에서 cron을 다시 초기화 할 수 있도록해야합니다.독립형 석영 작업을 시작하는 방법

답변

0

기본 방법을 작성한 방식대로 작업을 예약 한 직후에 응용 프로그램이 종료됩니다. 쿼츠 작업은 다른 스레드에서 예약되지만 프로세스가 종료되면 모든 활성 스레드가 종료됩니다.

scheduler.scheduleJob 다음에 while (true) {} 문을 추가하기 만하면 응용 프로그램이 계속 실행됩니다.

지금, 단지 받는다는 귀하의 항아리를 구축하고이 터미널에 반환하지 않는다 "MVN은 깨끗 -DskipTests 설치"를 실행 한 후 java -jar myjar.jar

+0

을 실행할 수 있습니다. – Garry

+0

그건 말이되지 않습니다. maven은 프로젝트를 빌드합니다. 특히'-DskipTests = true' ("= true"부분이 있습니까?)와 함께, 코드는 실행되지 않습니다. POM에는 다른 것이있을 수 있습니다. –

+0

항아리를 실행할 때 터미널로 돌아 가지 않는다는 것을 의미한다면, 그것은 그 동안의 결과입니다 (참). 애플리케이션이 중단 될 때까지 (예 : Ctrl-C) 애플리케이션이 종료되지 않습니다. 무인으로 실행하고 싶다면 일반 CRON (Linux) 또는 Windows 작업 관리자로 항아리를 실행하는 것을 포함하여 몇 가지 옵션이 있음을 알려주십시오. 보다 우아하게 (그러나 더 많은 Rube-Golberg도) 서비스를 만드는 것입니다. –

관련 문제