2018-05-24 quartz

1、Job:表示一个工作,要执行的具体内容。此接口中只有一个方

void execute(JobExecutionContextcontext)

2、JobDetail

JobDetail表示一个具体的可执行的调度程序,Job是这个可执行程调度程序所要执行的内容,另外JobDetail还包含了这个任务调度的方案和策略。

3、Trigger代表一个调度参数的配置,什么时候去调。--定时器

Quartz 中五种类型的 Trigger:SimpleTrigger,CronTirgger,DateIntervalTrigger,NthIncludedDayTrigger和Calendar 类( org.quartz.Calendar)。

最常用的:

2.1.cron 方式:采用cronExpression表达式配置时间。

2.2.simple 方式:和JavaTimer差不多,可以指定一个开始时间和结束时间外加一个循环时间。

【和java API中的Timer类类似】

2.3.calendars 方式:可以和cron配合使用,用cron表达式指定一个触发时间规律,用calendar指定一个范围。

注意:cron方式需要用到的4张数据表: 【即只有corn时间表达式的方式才会向表插入数据】

qrtz_triggers,qrtz_cron_triggers,qrtz_fired_triggers,qrtz_job_details

1.1.qrtz_blob_triggers: 以Blob类型存储的触发器

1.2.qrtz_calendars:存放日历信息, quartz可配置一个日历来指定一个时间范围。

1.3.qrtz_cron_triggers:存放cron类型的触发器。

1.4.qrtz_fired_triggers:存放已触发的触发器。

1.5.qrtz_job_details:存放一个jobDetail信息。

1.6.qrtz_job_listeners:job**监听器**。

1.7.qrtz_locks: 存储程序的悲观锁的信息(假如使用了悲观锁)。

1.8.qrtz_paused_trigger_graps:存放暂停掉的触发器。

1.9.qrtz_scheduler_state:调度器状态。

1.10.qrtz_simple_triggers简单触发器的信息。

1.11.qrtz_trigger_listeners触发器监听器

1.12.qrtz_triggers触发器基本信息

4、Scheduler代表一个调度容器,一个调度容器中可以注册多个JobDetail和Trigger。当Trigger与JobDetail组合,就可以被Scheduler容器调度了

2018-05-24 quartz_第1张图片
从上面简图可以看出各概念之间的关系

一个job可以被多个Trigger 绑定,但是一个Trigger只能绑定一个job!

可以写个小案例来初步了解下quartz:

思路:1建一个任务类implements Job接口,作为具体的任务执行逻辑。

class myjob implements Job{

    @Override

    public void execute(JobExecutionContext context)throws JobExecutionException {

     //具体的任务逻辑

      System.out.println("实验quartz,每隔多少秒打印一次");

   }

}

2:测试类里面进行任务调度,首先生成JobDetail。。。。

。。。待后续

你可能感兴趣的:(2018-05-24 quartz)