2014-12-02 49 views
0

我正在尝试创建两个每天执行的任务。出于某种原因,只有第一份工作正在执行。没有例外被抛出。任何想法为什么这可能是这种情况?这里是我的代码:石英调度程序 - 第二个任务不执行

 SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory(); 

      Scheduler sched = schedFact.getScheduler(); 

      sched.start(); 


     JobDetail sysJob = newJob(SysParseJob.class).withIdentity("sysJob").build(); 

     Trigger sysTrigger = newTrigger() 
       .withIdentity("sysTrigger") 
       .forJob("sysJob") 
       .withSchedule(dailyAtHourAndMinute(0, 5)) // execute job daily at 12:05 
       .build(); 

     sched.scheduleJob(sysJob, sysTrigger); 


     JobDetail histJob = newJob(HistParseJob.class).withIdentity("histJob").build(); 

     Trigger histTrigger = newTrigger() 
       .withIdentity("histTrigger") 
       .forJob("histJob") 
       .withSchedule(dailyAtHourAndMinute(0, 1)) // execute job daily at 12:01 
       .build(); 

     sched.scheduleJob(histJob, histTrigger); 
+0

启用石英日志记录名称=“org.quartz”level =“INFO”以查看您的工作是否被选中。如果你使用数据库作为工作商店,你也可以使用QRTZ表 – 6ton 2014-12-02 17:52:40

回答

0

也许你的触发器建立可能会有一些错误。检查这是否可以解决您的目的

public static void main(String[] args) throws SchedulerException, 
      ParseException { 
     SchedulerFactory schedFact = new StdSchedulerFactory(); 
     Scheduler sched = schedFact.getScheduler(); 
     sched.start(); 

     JobDetail sysJob = JobBuilder.newJob(HelloJob1.class) 
       .withIdentity(new JobKey("sysJob")).build(); 

     Trigger sysTrigger = TriggerBuilder 
       .newTrigger() 
       .withIdentity(new TriggerKey("sysTrigger")) 
       .withSchedule(dailyAtHourAndMinute(0, 51)) 
       .startNow() 
       .build(); 
     sched.scheduleJob(sysJob, sysTrigger); 

     JobDetail histJob = JobBuilder.newJob(HelloJob2.class) 
       .withIdentity(new JobKey("histJob ")).build(); 

     Trigger sysTrigger2 = TriggerBuilder 
       .newTrigger() 
       .withIdentity(new TriggerKey("sysTrigger2")) 
       .withSchedule(dailyAtHourAndMinute(0, 52)) 
       .startNow() 
       .build(); 
     sched.scheduleJob(histJob, sysTrigger2); 
    } 

    private static CronScheduleBuilder dailyAtHourAndMinute(int hour,int minute){ 
     return CronScheduleBuilder.dailyAtHourAndMinute(hour, minute); 
    }