1、Calendar
calendar用于排除或包含特定的年月日,时分秒,或完整日期。它的类结构如下:
Calendar:顶层接口。
BaseCalendar: 它用于抽象Calendar的公共操作和公共属性,其他Calendar都继承它。
AnnualCalendar:指定时间段,单位为年
WeelyCalendar:指定时间段,单位为周
MontlyCalendar:指定时间段,单位为月
DailyCalendar:指定时间段,单位为天。
HolidayCalendar:特殊日期,天时间段
CronCalendar:指定时间段,根据Cron表达式。
使用Calendar的步骤较为简单:
第一步,创建Calendar, 并添加到Scheduler中。
DailyCalendar calendar = new DailyCalendar("9:22:00","9:30:00"); scheduler.addCalendar("calendar", calendar, false, false);
第二步,使用TriggerBuilder方法时,添加modifiedbyCalendar,参数为calendar的名称。
return TriggerBuilder.newTrigger() .withIdentity("test trigger", "test") .startNow() .withSchedule(simpleSchedule().repeatSecondlyForTotalCount(6) .withIntervalInMinutes(1)) .modifiedByCalendar("calendar") .build();
2、 JobStore
Quartz支持三种类型的JobStore。
RAMJobStore:存储在内存中,程序中断之后,内存会被清空。
JDBCJobStore:存储在数据库中,需要导入相关的表。
TerracottaJobStore:不常用,略。