任务调度领域的领域的开源项目,完全基于java实现。
核心元素:scheduler 任务调度器,Trigger 触发器,job 任务。
Trigger(4种)定义时间规则,用于执行任务。
Job 表示被调度的任务。2种类型:stateless,stateful。有状态的job不能被并行执行,只有上一次触发的任务被执行完之后才能触发下一次执行。
Job2种属性:
volatility表示任务是否被持久化到DB。
durability表示没有trigger关联的时候任务是否被保留。
1个job可以被多个trigger关联。1个trigger只能关联1个job。
Scheduler 由scheduler工厂创建:DirectSchedulerFactory或者StdSchedulerFactory。第二种工厂StdSchedulerFactory使用较多,因为DirectSchedulerFactory使用起来不够方便,需要作许多详细的手工编码设置。
3种:RemoteMBeanScheduler,RemoteScheduler,StdScheduler
核心元素之间的关系
quartz最基本的概念就是job,在job内调用具体service完成具体功能,quartz需要把每个job存储起来,方便调度。
quartz存储job方式就分三种。
RAMJobStore(默认)