2013-03-27 89 views
0

我已經創建了一個調度:Quartz調度工作不

SchedulerFactory sf = new StdSchedulerFactory(); 
Scheduler sched = sf.getScheduler(); 
Trigger trigger1 = (Trigger) 
newTrigger().withSchedule(DailyTimeIntervalScheduleBuilder.dailyTimeIntervalSchedule().startingDailyAt(new TimeOfDay(8,0)).endingDailyAt(new TimeOfDay(11,0)).withInterval(1, IntervalUnit.DAY)); 

Date ft = sched.scheduleJob(job, trigger1); 

但它拋出一個異常:

Exception in thread "main" java.lang.ClassCastException: org.quartz.TriggerBuilder cannot be cast to org.quartz.Trigger 

我怎麼能解決這個錯誤?

回答

4

您忘記了TriggerBuilder上的.build();方法。該代碼應該是這樣的:

newTrigger().withSchedule(
DailyTimeIntervalScheduleBuilder.dailyTimeIntervalSchedule() 
    .startingDailyAt(new TimeOfDay(8,0)) 
     .endingDailyAt(new TimeOfDay(11,0)) 
      .withInterval(1, IntervalUnit.DAY)) 
      .build(); 
+0

我試圖烏爾code..Now我在線程獲得的錯誤,如this..Exception「主」 java.lang.IllegalArgumentException異常:無效的重複IntervalUnit(必須是秒,分鐘或一小時)。 \t at org.quartz.DailyTimeIntervalScheduleBuilder.withInterval(DailyTimeIntervalScheduleBuilder.java:179) – vmb 2013-03-27 08:00:47

+1

是的,錯誤信息是顯而易見的:似乎'DailyTimeIntervalScheduleBuilder'只接受秒,分或小時,而不是幾天。也許你需要另一種類型的調度程序,檢查石英api – dcernahoschi 2013-03-27 08:05:04

+0

好的...我將它改爲3.它的作品 – vmb 2013-03-27 08:05:29