简单使用Quartz
通过SchedulerFactory
实例化scheduler
,一旦scheduler
被实例化,它就可以被启动,处于待机模式,然后关闭。注意,一旦scheduler
被关闭,它就不能再次启动。Trigger
不会触发(job不会执行),直到scheduler
启动,或者处于暂停态。
这里是一个代码片段,它实例化和启动了一个scheduler,并调度了一个job:
Quartz几个常用的API
- Scheduler :用于与调度程序交互的主程序接口。
- Job:预先定义的希望在未来时间被调度程序执行的任务类,自定义。
- JobDetall :使用JobDetail来定义定时任务的实例,JobDetail实例是通过JobBuilder类创建。
- JobDataMap :可包含数据对象,在job实例执行的时候,可使用包含的数据;JobDataMap是java Map接口的实现,增加了一些存取基本类型方法。
- Trgger触发器 :Trigger对象是用于触发执行Job的,当调度一个Job时,我们实例一个触发器然后调整它的属性来满足Job执行的条件,表明任务在什么时候执行。定义了一个已经被安排的任务将在什么时候执行的时间条件,比如每秒执行一次。
- JobBuilder :用于声明一个任务实例,也可以定义关于该任务的详情比如:任务名,组名等,这个声明的实例将作为一个实例执行的任务。
- TriggerBuilder :触发器创建器,用于创建触发器trigger实例。
- JobListener,TriggerListener,SchedulerListener监听器,用于对组件的监听。
核心API :Scheduler,Job,Trgger简单认识
- Scheduler调度器
Scheduler的生命周期起始于SchedulerFactory对它的创建,终止于调用shutdown方法对它关闭。一旦创建,就可以用Scheduler接口添加、移除、查询Job和Trigger,也可以执行与调度有关的操作(例如暂停trigger)。然而,如果没有调用start方法,Scheduler不会执行任何trigger(执行job)。 - Job任务
一个Job就是一个实现了Job接口的类,它只有一个简单的方法:
我们可以定义多个这样的实现类用来实现不同的任务,然后通过触发器来触发,一个Job可以指定多个触发器。
3. Trgger触发器
Trgger触发器用来按指定时间或者定时来执行一个Job,最常用的类型是SimpleTrigger和CronTrigger。如果你只需要执行一次,或者在给定的时间点启动job,并以时间间隔T,重复执行N次,那么SimpleTrigger是很方便的。如果你想要按照类似于日历的计划触发:例如每天中午、每月10号10:15,那么CronTrigger就很有用了。
4. Job和Trgger 的标识
Job和Trigger要给定标识符,因为它们要注册到Quartz scheduler中。Job和Trigger (JobKey和TriggerKey)的key允许它们放置到“组”中,分组对于job和trigger的归类是很有用的,例如“报告作业”和“维护作业”。Job和trigger的key的名字部分必须在组内是唯一的:换句话说,job和trigger的完整的key(或标识符)是名字和组的组合。
下一篇:Quartz Job和JobDetail详解
评论区