前言

        Quartz集群使用一个共享的数据库来存储任务和调度信息,利用数据库行锁的方式来实现集群环境下的并发控制。

        Quartz集群依赖于数据库,所以必须首先创建Quartz数据库表。Quartz发布包中包括了所有被支持的数据库平台的SQL脚本,版本:2.3.0, SQL文件是在这个路径下:quartz-2.3.0-SNAPSHOT\src\org\quartz\impl\jdbcjobstore\tables_mysql.sql,总共11张表。

目录

前言

1、qrtz_blob_triggers

2、qrtz_calendars

3、qrtz_cron_triggers

4、qrtz_fired_triggers

5、qrtz_job_details

6、qrtz_locks

7、qrtz_paused_trigger_grps

8、qrtz_scheduler_state

9、qrtz_simple_triggers

10、qrtz_simprop_triggers

11、qrtz_triggers


1、qrtz_blob_triggers

作用:存储BLOB触发器的额外信息。

表字段含义
sched_name调度名称
trigger_nameqrtz_triggers表trigger_name的外键
trigger_groupqrtz_triggers表trigger_group的外键
blob_data一个blob字段,存放持久化Trigger对象

2、qrtz_calendars

作用:存储日历信息,用于作业调度的时间约束。

表字段含义
sched_name调度名称
calendar_name日历名称
calendar一个blob字段,存放持久化calendar对象

3、qrtz_cron_triggers

作用:存储Cron触发器的额外信息。

表字段含义
sched_name调度名称
trigger_nameqrtz_triggers表trigger_name的外键
trigger_groupqrtz_triggers表trigger_group的外键
cron_expressioncron表达式
time_zone_id时区

4、qrtz_fired_triggers

作用:存储已触发的触发器信息,以及相联 Job 的执行信息。

表字段含义
sched_name调度名称
entry_id调度器实例id
trigger_nameqrtz_triggers表trigger_name的外键
trigger_groupqrtz_triggers表trigger_group的外键
instance_name调度器实例名
fired_time触发的时间
sched_time定时器制定的时间
priority优先级
state状态
job_name集群中job的名字
job_group集群中job的所属组的名字
is_nonconcurrent是否并发
requests_recovery是否接受恢复执行,默认为false,设置了RequestsRecovery为true,则会被重新执行

5、qrtz_job_details

作用:存储作业详细信息,包括作业名称、作业组、描述、作业类名等。

表字段含义
sched_name调度名称
job_name集群中job的名字
job_group集群中job的所属组的名字
description详细描述信息
job_class_name集群中个notejob实现类的全限定名,quartz就是根据这个路径到classpath找到该job类
is_durable是否持久化,把该属性设置为1,quartz会把job持久化到数据库中
is_nonconcurrent是否并发执行
is_update_data是否更新数据
requests_recovery是否接受恢复执行,默认为false,设置了RequestsRecovery为true,则该job会被重新执行
job_data一个blob字段,存放持久化job对象

6、qrtz_locks

作用:存储锁信息,用于保证数据一致性和防止竞态条件。比如悲观锁

表字段含义
sched_name调度名称
lock_name悲观锁名称

7、qrtz_paused_trigger_grps

作用:存储暂停的触发器组。

表字段含义
sched_name调度名称
trigger_groupqrtz_triggers表trigger_group的外键

8、qrtz_scheduler_state

作用:存储调度器状态信息,包括当前的主节点信息等。

表字段含义
sched_name调度名称
instance_name之前配置文件中org.quartz.scheduler.instanceId配置的名字,就会写入该字段
last_checkin_time上次检查时间
checkin_interval检查间隔时间

9、qrtz_simple_triggers

作用:存储简单触发器的额外信息。比如包括重复次数,间隔,以及已触发的次数。

表字段含义
sched_name调度名称
trigger_nameqrtz_triggers表trigger_ name的外键
trigger_groupqrtz_triggers表trigger_group的外键
repeat_count重复的次数统计
repeat_interval重复的间隔时间
times_triggered已经触发的次数

10、qrtz_simprop_triggers

作用:用来存储存储CalendarIntervalTrigger和DailyTimeIntervalTrigger。

表字段含义
SCHED_NAME调度名称
TRIGGER_NAMEqrtz_triggers表trigger_ name的外键
TRIGGER_GROUPqrtz_triggers表trigger_group的外键
STR_PROP_1String类型的trigger的第一个参数
STR_PROP_2String类型的trigger的第二个参数
STR_PROP_3String类型的trigger的第三个参数
INT_PROP_1int类型的trigger的第一个参数
INT_PROP_2int类型的trigger的第二个参数
LONG_PROP_1long类型的trigger的第一个参数
LONG_PROP_2long类型的trigger的第二个参数
DEC_PROP_1decimal类型的trigger的第一个参数
DEC_PROP_2decimal类型的trigger的第二个参数
BOOL_PROP_1Boolean类型的trigger的第一个参数
BOOL_PROP_2Boolean类型的trigger的第二个参数

11、qrtz_triggers

作用:存储触发器详细信息,包括触发器名称、触发器组、开始时间、结束时间、重复间隔等。

表字段含义
sched_name调度名称
trigger_name触发器的名字
trigger_group触发器所属组的名字
job_nameqrtz_job_details表job_name的外键
job_groupqrtz_job_details表job_group的外键
description详细描述信息
prev_fire_time上一次触发时间(毫秒)
next_fire_time下一次触发时间,默认为-1,意味不会自动触发
priority优先级
trigger_state当前触发器状态,设置为ACQUIRED,如果设置为WAITING,则job不会触发 ( WAITING:等待 PAUSED:暂停ACQUIRED:正常执行 BLOCKED:阻塞 ERROR:错误)
trigger_type触发器的类型,使用cron表达式
start_time开始时间
end_time结束时间
calendar_name日程表名称,表qrtz_calendars的calendar_name字段外键
misfire_instr措施或者是补偿执行的策略
job_data一个blob字段,存放持久化job对象

参考:Quartz定时任务2.3版本数据库表字段说明_qrtz_simprop_triggers-CSDN博客 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐