2017-03-02 4 views
0

다음은 제 코드입니다. 10 분마다 복제 식으로 작업을하고 싶습니다. 나는 내 일이 10 분에 실행해야합니다 후 즉시 실행 처음 interval.I은 석영 2.1.2나는 어떻게 crone을 실행할 수 있습니까?

JobKey jobKeyA = new JobKey("abc", "abc"); 

JobDetail jobA = JobBuilder.newJob(ContiniousJob.class) 
     .withIdentity(jobKeyA).build(); 

Trigger trigger3 = TriggerBuilder 
     .newTrigger() 
     .withIdentity("abc", "abc") 
     .startNow() 
     .withSchedule(CronScheduleBuilder.cronSchedule("0 0/10 * * * ?")) 
     .build(); 

감사를 사용하고 싶습니다.

답변

0

불행히도, 우연히도 cron을 즉시 실행할 수는 없습니다.
짧은 지연 시간 (현재 시간 + 1 분)으로 시작해야하는 직후에 작업을 예약하는 제안이 있습니다.
here을 테스트 해보십시오.

1

당신은 10 분 간격을 원하는 경우 CronTrigger 필요하지 않습니다, 당신은 단지 SimpleTrigger를 사용할 수 있습니다

Trigger trigger3 = TriggerBuilder 
     .newTrigger() 
     .withIdentity("abc", "abc") 
     .startNow() 
     .withSchedule(simpleSchedule() 
      .withIntervalInMinutes(10) 
      .repeatForever()) 
     .build(); 

당신이 여전히 어떤 이유로 CronTrigger를 사용할 필요가이 일을해야하는 경우 :

// Trigger to run immediately 
Trigger trigger = TriggerBuilder.newTrigger() 
      .withIdentity("abc", "abc") 
      .startNow() 
      .build(); 
Set<Trigger> triggers = new HashSet<>(); 
triggers.add(trigger); 

// Your CronTrigger 
Date delayedStart = DateUtils.addMinutes(new Date(), 10); 
Trigger cronTrigger = TriggerBuilder 
     .newTrigger() 
     .withIdentity("abc", "abc") 
     .startAt(delayedStart) 
     .withSchedule(CronScheduleBuilder.cronSchedule("0 0/10 * * * ?")) 
     .build(); 

triggers.add(cronTrigger); 

// Schedule job with multiple triggers 
scheduler.scheduleJob(job, triggers, false); 

즉시 실행하고 다른 하나는 CronTrigger로 트리거합니다.