使用QUARTZ1.6的CronTrigger,开始时间和结束时间必须包含年月日.但是需求是每天的某个时间段去调度.这样的话就不能有年月日的限制,但是又必须设置开始时间和结束时间的时分秒.这个问题不少人纠结过,其实QUARTZ1.6有个强大的接口用的人比较少,就是Calendar.
//startTime,endTime : HH:mm:ss DailyCalendar dailyCalendar = new DailyCalendar(startTime,endTime); dailyCalendar.setInvertTimeRange(true); //这个必须设为True //将该Calendar数据保存 scheduler.addCalendar(calendarName,dailyCalendar,false,false); //为触发器配置 Calendar cronTrigger.setCalendarName(calendarName);
org.quartz.impl.calendar.BaseCalender
为高级的 Calender 实现了基本的功能,实现了 org.quartz.Calender 接口
org.quartz.impl.calendar.WeeklyCalendar
排除星期中的一天或多天,例如,可用于排除周末
org.quartz.impl.calendar.MonthlyCalendar
排除月份中的数天,例如,可用于排除每月的最后一天
org.quartz.impl.calendar.AnnualCalendar
排除年中一天或多天
org.quartz.impl.calendar.HolidayCalendar
特别的用于从 Trigger 中排除节假日
org.quartz.impl.calendar.DailyCalendar
每天