后端——框架——定时任务——quartz——Calendar & JobStore

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:不常用,略。

原文地址:https://www.cnblogs.com/rain144576/p/14749936.html