Quartz基本介绍
来源:洛阳达内教育IT培训中心 时间:2021/9/9 11:32:45
Quartz基本介绍
Quartz概述
Quartz是OpenSymphony开源组织在任务调度领域的一个开源项目,完全基于Java实现。该项目于2009年被Terracotta收购,目前是Terracotta旗下的一个项目。
Quartz特点
作为一个的开源调度框架,Quartz具有以下特点:
强大的调度功能,例如支持丰富多样的调度方法,可以满足各种常规及特殊需求;
灵活的应用方式,例如支持任务和调度的多种组合方式,支持调度数据的多种存储方式;
分布式和集群能力,Terracotta收购后在原来功能基础上作了进一步提升。
另外,作为Spring默认的调度框架,Quartz很容易与Spring集成实现灵活可配置的调度功能。
![Quartz基本介绍 Quartz基本介绍](http://www.mxiao.cn/UploadFile/image/20210909/20210909113345_9933.jpeg)
quartz调度核心元素:
Scheduler:任务调度器,是实际执行任务调度的控制器。在spring中通过SchedulerFactoryBean封装起来。
Trigger:触发器,用于定义任务调度的时间规则,有SimpleTrigger,CronTrigger,DateIntervalTrigger和NthIncludedDayTrigger,其中CronTrigger用的比较多,本文主要介绍这种方式。CronTrigger在spring中封装在CronTriggerFactoryBean中。
Calendar:它是一些日历特定时间点的集合。一个trigger可以包含多个Calendar,以便排除或包含某些时间点。
JobDetail:用来描述Job实现类及其它相关的静态信息,如Job名字、关联监听器等信息。在spring中有JobDetailFactoryBean和MethodInvokingJobDetailFactoryBean两种实现,如果任务调度只需要执行某个类的某个方法,就可以通过MethodInvokingJobDetailFactoryBean来调用。
Job:是一个接口,只有一个方法void execute(JobExecutionContext context),开发者实现该接口定义运行任务,JobExecutionContext类提供了调度上下文的各种信息。Job运行时的信息保存在JobDataMap实例中。实现Job接口的任务,默认是无状态的,若要将Job设置成有状态的,在quartz中是给实现的Job添加 DisallowConcurrentExecution注解(以前是实现StatefulJob接口,现在已被Deprecated),在与spring结合中可以在spring配置文件的job detail中配置concurrent参数。