quartz学习

Posted 点点滴滴啊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了quartz学习相关的知识,希望对你有一定的参考价值。

Quzrtz是一个作业调度框架,用于指定工作(作业)在指定时间执行——定时工作。

Quzrtz的核心接口有:

  Scheduler接口:Scheduler是job的执行对象,用于工作的执行。

  Job接口:用于指定作业的类,自己写的“定时程序”需要实现此接口的void execute(JobExecutionContext arg0)方法。

  Trigger抽象类:指定工作在什么时候执行。调度类(Scheduler)在指定时间调用此类,再由trigger类调用指定的定时程序。    

  JobDetail类:持有某个定时工作的详细描述,包括Name,Group,JobDataMap等。
  JobExecutionContext类:定时程序执行的run-time的上下文环境,用于得到当前执行的Job的名字,配置的参数等。
  JobDataMap类:用于描述一个作业的参数,参数可以为任何基本类型例,也可为某个对象的引用.
  JobListener,TriggerListener接口:用于监听触发器状态和作业扫行状态,在特写状态执行相应操作。
  JobStore类:在哪里执行定进程序,可选的有在内存中,在数据库中。

Scheduler接口:

  通过SchedulerFactory的getDefaultScheduler获取Schedule对象。

  Scheduler通过调用start方法启动工作的执行。

  Scheduler通过scheduleJob(JobDetail,Trigger)方法向Scheduler注册工作,JobDetail持有执行job的信息,trigger指的是什么时候触发工作。

job接口:

  job是执行工作的Java类,要想指定自己的工作,必须实现job接口,在方法execute(JobExecutionContext arg0)中进行工作操作。

JobDetail类:

  jobDerail持有job的相关信息,通过构造器进行实例:public JobDetail(String name, String group, Class jobClass),通过向其中传递工作名、工作组、工作类的class实例jobdetail对象。

Trigger接口:

  trigger接口的实现类 org.quartz.SimpleTrigger 、org.quartz.CronTrigger 和 org.quartz.NthIncludedDayTrigger

  SimpleTrigger主要是针对一些相对简单的时间触发进行配置使用,比如在指定的时间开始然后在一定的时间间隔之内重复执行一个Job

  CronTrigger可以配置更复杂的触发时刻表,比SimpleTrigger功能上跟加强大,主要在能配置跟加复杂的执行计划的时间

  NthIncludedDayTrigger

 一个trigger只能对应一个job,一个job能对应多个trigger。trigger是job的触发器,指定在什么情况下执行定时计划。

JobDataMap类:

  jobDataMap类就像它的名字说的那样,用于存储job的数据,以map的形式进行存储。jobDataMap可以向job对象传递任何数据类型的信息

JobStore接口:

  JobStore的实现类,RAMJobStore和JDBCJobStore

  RAMJobStore中对job操作的方法有:

    public void storeJob(SchedulingContext ctxt, JobDetail newJob,boolean replaceExisting),用于job存储进内存中去

    public boolean removeJob(SchedulingContext ctxt, String jobName,String groupName);移除job

    public JobDetail retrieveJob(SchedulingContext ctxt, String jobName,String groupName);获取job的jobDerail,

  对trigger的操作类似。

 

  

以上是关于quartz学习的主要内容,如果未能解决你的问题,请参考以下文章

Quartz.Net学习笔记-简介

iOS学习——Quartz2D学习

Quartz学习——SSMM(Spring+SpringMVC+Mybatis+Mysql)和Quartz集成详解

Quartz学习

Quartz学习-- quartz基本介绍和 Cron表达式

Quartz学习——Quartz大致介绍