前言:对Quartz定时任务集群进行了初步探究
qrtz_blob_triggers:(以Blob 类型存储的触发器。)---Trigger作为Blob类型存储--(用于Quartz用户用JDBC创建他们自己定制的 Trigger类型,JobStore并不知道如何存储实例的时候)
qrtz_calendars:(存放日历信息, quartz可配置一个日历来指定一个时间范围。)----以Blob类型存储Quartz的Calendar信息
qrtz_cron_triggers:(注意:cron方式需要用到的4张数据表:qrtz_triggers,qrtz_cron_triggers,qrtz_fired_triggers, qrtz_job_details。)---(存放cron类型的触发器。)---(cron表达式)----存储cron Trigger,包括Cron表达式和时区信息
qrtz_fired_triggers:(存放已触发的触发器。)---存储与已触发的Trigger相关的状态信息,以及相联Job的执行信息。(存储与已触发 的Trigger相关的状态信息,以及相联Job的执行信息)
qrtz_job_details:(存放一个jobDetail信息。)---保存job详细信息,该表需要用户根据实际情况初始化(存储每一个已配置的Job的详细 信息)
qrtz_locks:(存储程序的悲观锁的信息(假如使用了悲观锁)。)--tables_oracle.sql里有相应的dml初始化(存储程序的悲观锁的信息 (假如使用了悲观锁))
qrtz_paused_trigger_grps:(存放暂停掉的触发器。)----存储已暂停的Trigger组的信息
qrtz_scheduler_state:(调度器状态。)----(运行中实例的状态)---集群中节点实例信息,Quartz定时读取该表的信息判断集群中每 个实例的当前状态。(存储少量的有关Scheduler的状态信息,和别的Scheduler实例(假如是用于一个集群中))
qrtz_simple_triggers:(简单触发器的信息。)---存储简单的Trigger,包括重复次数,间隔,以及已触的次数
qrtz_triggers:(触发器的基本信息。)---(持久化任务:当应用程序停止运行时,所有调度信息不被丢失,当你重新启动时,调度 信息还存在,这就是持久化任务(保存到数据库表中)。)---(每个定时任务的上次及下次执行时间, 执行状态 (BLOCKED,WAITING等))存储已配置的Trigger
spring-task.xml:进行任务配置,以及定时引用任务,最后将定时任务丢进任务工厂,并引入quartz.properties配置文件
spring-config.xml:引入spring-task.xml
service :在相应service层写好任务方法
在继承QuartzJobBean的Job中注入相应service,并调用任务
总结:对于定时任务被持久化到数据库中,如果需要重新制作定时任务,需要将这几张数据库表中的无关记录删除掉,特别注意 qrtz_job_details这张表由于主外键关联,需要等到其它表无关记录删除之后,再进行删除。