quartz

    xiaoxiao2021-04-15  267

    前言:对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这张表由于主外键关联,需要等到其它表无关记录删除之后,再进行删除。

     


    最新回复(0)