Quartz依赖数据库表

Quartz的集群部署方案在架构上是分布式的,没有负责集中管理的节点,而是利用数据库锁的方式来实现集群环境下进行并发控制。BTW,分布式部署时需要保证各个节点的系统时间一致。

Quartz数据库核心表如下:

table

description

QRTZ_CALENDARS

存储Quartz的Calendar信息

QRTZ_CRON_TRIGGERS

存储CronTrigger,包括Cron表达式和时区信息

QRTZ_FIRED_TRIGGERS

存储与已触发的Trigger相关的状态信息,以及相联Job的执行信息

QRTZ_PAUSED_TRIGGER_GRPS

存储已暂停的Trigger组的信息

QRTZ_SCHEDULER_STATE

存储少量的有关Scheduler的状态信息,和别的Scheduler实例

QRTZ_LOCKS

存储程序的悲观锁的信息

QRTZ_JOB_DETAILS

存储每一个已配置的Job的详细信息

QRTZ_JOB_LISTENERS

存储有关已配置的JobListener的信息

QRTZ_SIMPLE_TRIGGERS

存储简单的Trigger,包括重复次数、间隔、以及已触的次数

QRTZ_BLOG_TRIGGERS

Trigger作为Blob类型存储

QRTZ_TRIGGER_LISTENERS

存储已配置的TriggerListener的信息

QRTZ_TRIGGERS

存储已配置的Trigger的信息

数据库脚本(mysql_innodb):

1# 2# In your Quartz properties file, you'll need to set 3# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate 4# 5# 6# By: Ron Cordell - roncordell 7# I didn't see this anywhere, so I thought I'd post it here. This is the script from Quartz to create the tables in a MySQL database, modified to use INNODB instead of MYISAM. 8 9DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS; 10DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS; 11DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE; 12DROP TABLE IF EXISTS QRTZ_LOCKS; 13DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS; 14DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS; 15DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS; 16DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS; 17DROP TABLE IF EXISTS QRTZ_TRIGGERS; 18DROP TABLE IF EXISTS QRTZ_JOB_DETAILS; 19DROP TABLE IF EXISTS QRTZ_CALENDARS; 20 21CREATE TABLE QRTZ_JOB_DETAILS( 22SCHED_NAME VARCHAR(120) NOT NULL, 23JOB_NAME VARCHAR(200) NOT NULL, 24JOB_GROUP VARCHAR(200) NOT NULL, 25DESCRIPTION VARCHAR(250) NULL, 26JOB_CLASS_NAME VARCHAR(250) NOT NULL, 27IS_DURABLE VARCHAR(1) NOT NULL, 28IS_NONCONCURRENT VARCHAR(1) NOT NULL, 29IS_UPDATE_DATA VARCHAR(1) NOT NULL, 30REQUESTS_RECOVERY VARCHAR(1) NOT NULL, 31JOB_DATA BLOB NULL, 32PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)) 33ENGINE=InnoDB; 34 35CREATE TABLE QRTZ_TRIGGERS ( 36SCHED_NAME VARCHAR(120) NOT NULL, 37TRIGGER_NAME VARCHAR(200) NOT NULL, 38TRIGGER_GROUP VARCHAR(200) NOT NULL, 39JOB_NAME VARCHAR(200) NOT NULL, 40JOB_GROUP VARCHAR(200) NOT NULL, 41DESCRIPTION VARCHAR(250) NULL, 42NEXT_FIRE_TIME BIGINT(13) NULL, 43PREV_FIRE_TIME BIGINT(13) NULL, 44PRIORITY INTEGER NULL, 45TRIGGER_STATE VARCHAR(16) NOT NULL, 46TRIGGER_TYPE VARCHAR(8) NOT NULL, 47START_TIME BIGINT(13) NOT NULL, 48END_TIME BIGINT(13) NULL, 49CALENDAR_NAME VARCHAR(200) NULL, 50MISFIRE_INSTR SMALLINT(2) NULL, 51JOB_DATA BLOB NULL, 52PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 53FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) 54REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)) 55ENGINE=InnoDB; 56 57CREATE TABLE QRTZ_SIMPLE_TRIGGERS ( 58SCHED_NAME VARCHAR(120) NOT NULL, 59TRIGGER_NAME VARCHAR(200) NOT NULL, 60TRIGGER_GROUP VARCHAR(200) NOT NULL, 61REPEAT_COUNT BIGINT(7) NOT NULL, 62REPEAT_INTERVAL BIGINT(12) NOT NULL, 63TIMES_TRIGGERED BIGINT(10) NOT NULL, 64PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 65FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 66REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) 67ENGINE=InnoDB; 68 69CREATE TABLE QRTZ_CRON_TRIGGERS ( 70SCHED_NAME VARCHAR(120) NOT NULL, 71TRIGGER_NAME VARCHAR(200) NOT NULL, 72TRIGGER_GROUP VARCHAR(200) NOT NULL, 73CRON_EXPRESSION VARCHAR(120) NOT NULL, 74TIME_ZONE_ID VARCHAR(80), 75PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 76FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 77REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) 78ENGINE=InnoDB; 79 80CREATE TABLE QRTZ_SIMPROP_TRIGGERS 81 ( 82 SCHED_NAME VARCHAR(120) NOT NULL, 83 TRIGGER_NAME VARCHAR(200) NOT NULL, 84 TRIGGER_GROUP VARCHAR(200) NOT NULL, 85 STR_PROP_1 VARCHAR(512) NULL, 86 STR_PROP_2 VARCHAR(512) NULL, 87 STR_PROP_3 VARCHAR(512) NULL, 88 INT_PROP_1 INT NULL, 89 INT_PROP_2 INT NULL, 90 LONG_PROP_1 BIGINT NULL, 91 LONG_PROP_2 BIGINT NULL, 92 DEC_PROP_1 NUMERIC(13,4) NULL, 93 DEC_PROP_2 NUMERIC(13,4) NULL, 94 BOOL_PROP_1 VARCHAR(1) NULL, 95 BOOL_PROP_2 VARCHAR(1) NULL, 96 PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 97 FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 98 REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) 99ENGINE=InnoDB; 100 101CREATE TABLE QRTZ_BLOB_TRIGGERS ( 102SCHED_NAME VARCHAR(120) NOT NULL, 103TRIGGER_NAME VARCHAR(200) NOT NULL, 104TRIGGER_GROUP VARCHAR(200) NOT NULL, 105BLOB_DATA BLOB NULL, 106PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 107INDEX (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP), 108FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 109REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) 110ENGINE=InnoDB; 111 112CREATE TABLE QRTZ_CALENDARS ( 113SCHED_NAME VARCHAR(120) NOT NULL, 114CALENDAR_NAME VARCHAR(200) NOT NULL, 115CALENDAR BLOB NOT NULL, 116PRIMARY KEY (SCHED_NAME,CALENDAR_NAME)) 117ENGINE=InnoDB; 118 119CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS ( 120SCHED_NAME VARCHAR(120) NOT NULL, 121TRIGGER_GROUP VARCHAR(200) NOT NULL, 122PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP)) 123ENGINE=InnoDB; 124 125CREATE TABLE QRTZ_FIRED_TRIGGERS ( 126SCHED_NAME VARCHAR(120) NOT NULL, 127ENTRY_ID VARCHAR(95) NOT NULL, 128TRIGGER_NAME VARCHAR(200) NOT NULL, 129TRIGGER_GROUP VARCHAR(200) NOT NULL, 130INSTANCE_NAME VARCHAR(200) NOT NULL, 131FIRED_TIME BIGINT(13) NOT NULL, 132SCHED_TIME BIGINT(13) NOT NULL, 133PRIORITY INTEGER NOT NULL, 134STATE VARCHAR(16) NOT NULL, 135JOB_NAME VARCHAR(200) NULL, 136JOB_GROUP VARCHAR(200) NULL, 137IS_NONCONCURRENT VARCHAR(1) NULL, 138REQUESTS_RECOVERY VARCHAR(1) NULL, 139PRIMARY KEY (SCHED_NAME,ENTRY_ID)) 140ENGINE=InnoDB; 141 142CREATE TABLE QRTZ_SCHEDULER_STATE ( 143SCHED_NAME VARCHAR(120) NOT NULL, 144INSTANCE_NAME VARCHAR(200) NOT NULL, 145LAST_CHECKIN_TIME BIGINT(13) NOT NULL, 146CHECKIN_INTERVAL BIGINT(13) NOT NULL, 147PRIMARY KEY (SCHED_NAME,INSTANCE_NAME)) 148ENGINE=InnoDB; 149 150CREATE TABLE QRTZ_LOCKS ( 151SCHED_NAME VARCHAR(120) NOT NULL, 152LOCK_NAME VARCHAR(40) NOT NULL, 153PRIMARY KEY (SCHED_NAME,LOCK_NAME)) 154ENGINE=InnoDB; 155 156CREATE INDEX IDX_QRTZ_J_REQ_RECOVERY ON QRTZ_JOB_DETAILS(SCHED_NAME,REQUESTS_RECOVERY); 157CREATE INDEX IDX_QRTZ_J_GRP ON QRTZ_JOB_DETAILS(SCHED_NAME,JOB_GROUP); 158 159CREATE INDEX IDX_QRTZ_T_J ON QRTZ_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP); 160CREATE INDEX IDX_QRTZ_T_JG ON QRTZ_TRIGGERS(SCHED_NAME,JOB_GROUP); 161CREATE INDEX IDX_QRTZ_T_C ON QRTZ_TRIGGERS(SCHED_NAME,CALENDAR_NAME); 162CREATE INDEX IDX_QRTZ_T_G ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP); 163CREATE INDEX IDX_QRTZ_T_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE); 164CREATE INDEX IDX_QRTZ_T_N_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE); 165CREATE INDEX IDX_QRTZ_T_N_G_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE); 166CREATE INDEX IDX_QRTZ_T_NEXT_FIRE_TIME ON QRTZ_TRIGGERS(SCHED_NAME,NEXT_FIRE_TIME); 167CREATE INDEX IDX_QRTZ_T_NFT_ST ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME); 168CREATE INDEX IDX_QRTZ_T_NFT_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME); 169CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE); 170CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE_GRP ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE); 171 172CREATE INDEX IDX_QRTZ_FT_TRIG_INST_NAME ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME); 173CREATE INDEX IDX_QRTZ_FT_INST_JOB_REQ_RCVRY ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY); 174CREATE INDEX IDX_QRTZ_FT_J_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP); 175CREATE INDEX IDX_QRTZ_FT_JG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_GROUP); 176CREATE INDEX IDX_QRTZ_FT_T_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP); 177CREATE INDEX IDX_QRTZ_FT_TG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_GROUP); 178 179commit;
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )