From 6a528e5eb08351c55f1ebf86ae74db21a960efe9 Mon Sep 17 00:00:00 2001 From: "Yangkai.Shen" <237497819@qq.com> Date: Mon, 26 Nov 2018 17:32:02 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20spring-boot-demo-task-quartz=20?= =?UTF-8?q?=E5=90=8E=E7=AB=AF=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../init/dbTables/tables_cloudscape.sql | 142 +++++++ .../init/dbTables/tables_cubrid.sql | 188 ++++++++++ .../init/dbTables/tables_db2.sql | 148 ++++++++ .../init/dbTables/tables_db2_v72.sql | 163 ++++++++ .../init/dbTables/tables_db2_v8.sql | 151 ++++++++ .../init/dbTables/tables_db2_v95.sql | 141 +++++++ .../init/dbTables/tables_derby.sql | 174 +++++++++ .../init/dbTables/tables_derby_previous.sql | 141 +++++++ .../init/dbTables/tables_firebird.sql | 154 ++++++++ .../init/dbTables/tables_h2.sql | 249 +++++++++++++ .../init/dbTables/tables_hsqldb.sql | 161 ++++++++ .../init/dbTables/tables_hsqldb_old.sql | 156 ++++++++ .../init/dbTables/tables_informix.sql | 186 ++++++++++ .../init/dbTables/tables_mysql.sql | 168 +++++++++ .../init/dbTables/tables_mysql_innodb.sql | 179 +++++++++ .../init/dbTables/tables_oracle.sql | 193 ++++++++++ .../init/dbTables/tables_pointbase.sql | 180 +++++++++ .../init/dbTables/tables_postgres.sql | 187 ++++++++++ .../init/dbTables/tables_sapdb.sql | 151 ++++++++ .../init/dbTables/tables_solid.sql | 147 ++++++++ .../init/dbTables/tables_sqlServer.sql | 349 ++++++++++++++++++ .../init/dbTables/tables_sybase.sql | 313 ++++++++++++++++ spring-boot-demo-task-quartz/pom.xml | 20 + .../SpringBootDemoTaskQuartzApplication.java | 2 + .../task/quartz/common/ApiResponse.java | 72 ++++ .../task/quartz/controller/JobController.java | 123 ++++++ .../quartz/entity/domain/JobAndTrigger.java | 62 ++++ .../task/quartz/entity/form/JobForm.java | 39 ++ .../xkcoding/task/quartz/job/HelloJob.java | 28 ++ .../com/xkcoding/task/quartz/job/TestJob.java | 28 ++ .../task/quartz/job/base/BaseJob.java | 40 ++ .../task/quartz/mapper/JobMapper.java | 29 ++ .../task/quartz/service/JobService.java | 71 ++++ .../quartz/service/impl/JobServiceImpl.java | 146 ++++++++ .../xkcoding/task/quartz/util/JobUtil.java | 30 ++ .../src/main/resources/application.yml | 56 +++ .../src/main/resources/mappers/JobMapper.xml | 23 ++ 37 files changed, 4790 insertions(+) create mode 100644 spring-boot-demo-task-quartz/init/dbTables/tables_cloudscape.sql create mode 100644 spring-boot-demo-task-quartz/init/dbTables/tables_cubrid.sql create mode 100644 spring-boot-demo-task-quartz/init/dbTables/tables_db2.sql create mode 100644 spring-boot-demo-task-quartz/init/dbTables/tables_db2_v72.sql create mode 100644 spring-boot-demo-task-quartz/init/dbTables/tables_db2_v8.sql create mode 100644 spring-boot-demo-task-quartz/init/dbTables/tables_db2_v95.sql create mode 100644 spring-boot-demo-task-quartz/init/dbTables/tables_derby.sql create mode 100644 spring-boot-demo-task-quartz/init/dbTables/tables_derby_previous.sql create mode 100644 spring-boot-demo-task-quartz/init/dbTables/tables_firebird.sql create mode 100644 spring-boot-demo-task-quartz/init/dbTables/tables_h2.sql create mode 100644 spring-boot-demo-task-quartz/init/dbTables/tables_hsqldb.sql create mode 100644 spring-boot-demo-task-quartz/init/dbTables/tables_hsqldb_old.sql create mode 100644 spring-boot-demo-task-quartz/init/dbTables/tables_informix.sql create mode 100644 spring-boot-demo-task-quartz/init/dbTables/tables_mysql.sql create mode 100644 spring-boot-demo-task-quartz/init/dbTables/tables_mysql_innodb.sql create mode 100644 spring-boot-demo-task-quartz/init/dbTables/tables_oracle.sql create mode 100644 spring-boot-demo-task-quartz/init/dbTables/tables_pointbase.sql create mode 100644 spring-boot-demo-task-quartz/init/dbTables/tables_postgres.sql create mode 100644 spring-boot-demo-task-quartz/init/dbTables/tables_sapdb.sql create mode 100644 spring-boot-demo-task-quartz/init/dbTables/tables_solid.sql create mode 100644 spring-boot-demo-task-quartz/init/dbTables/tables_sqlServer.sql create mode 100644 spring-boot-demo-task-quartz/init/dbTables/tables_sybase.sql create mode 100644 spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/common/ApiResponse.java create mode 100644 spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/controller/JobController.java create mode 100644 spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/entity/domain/JobAndTrigger.java create mode 100644 spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/entity/form/JobForm.java create mode 100644 spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/job/HelloJob.java create mode 100644 spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/job/TestJob.java create mode 100644 spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/job/base/BaseJob.java create mode 100644 spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/mapper/JobMapper.java create mode 100644 spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/service/JobService.java create mode 100644 spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/service/impl/JobServiceImpl.java create mode 100644 spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/util/JobUtil.java create mode 100644 spring-boot-demo-task-quartz/src/main/resources/mappers/JobMapper.xml diff --git a/spring-boot-demo-task-quartz/init/dbTables/tables_cloudscape.sql b/spring-boot-demo-task-quartz/init/dbTables/tables_cloudscape.sql new file mode 100644 index 0000000..70eb8e2 --- /dev/null +++ b/spring-boot-demo-task-quartz/init/dbTables/tables_cloudscape.sql @@ -0,0 +1,142 @@ +# +# Thanks to Srinivas Venkatarangaiah for submitting this file's contents +# +# In your Quartz properties file, you'll need to set +# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.CloudscapeDelegate +# +# Known to work with Cloudscape 3.6.4 (should work with others) +# + + +create table qrtz_job_details ( + sched_name varchar(120) not null, + job_name varchar(200) not null, + job_group varchar(200) not null, + description varchar(250) , + job_class_name varchar(250) not null, + is_durable varchar(5) not null, + is_nonconcurrent varchar(5) not null, + is_update_data varchar(5) not null, + requests_recovery varchar(5) not null, + job_data long varbinary, +primary key (sched_name,job_name,job_group) +); + +create table qrtz_triggers( + sched_name varchar(120) not null, + trigger_name varchar(200) not null, + trigger_group varchar(200) not null, + job_name varchar(200) not null, + job_group varchar(200) not null, + description varchar(250) , + next_fire_time longint, + prev_fire_time longint, + priority integer, + trigger_state varchar(16) not null, + trigger_type varchar(8) not null, + start_time longint not null, + end_time longint, + calendar_name varchar(200), + misfire_instr smallint, + job_data long varbinary, +primary key (sched_name,trigger_name,trigger_group), +foreign key (sched_name,job_name,job_group) references qrtz_job_details(sched_name,job_name,job_group) +); + +create table qrtz_simple_triggers( + sched_name varchar(120) not null, + trigger_name varchar(200) not null, + trigger_group varchar(200) not null, + repeat_count longint not null, + repeat_interval longint not null, + times_triggered longint not null, +primary key (sched_name,trigger_name,trigger_group), +foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) +); + +create table qrtz_cron_triggers( + sched_name varchar(120) not null, + trigger_name varchar(200) not null, + trigger_group varchar(200) not null, + cron_expression varchar(120) not null, + time_zone_id varchar(80), +primary key (sched_name,trigger_name,trigger_group), +foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) +); + +CREATE TABLE qrtz_simprop_triggers + ( + sched_name varchar(120) not null, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + STR_PROP_1 VARCHAR(512) NULL, + STR_PROP_2 VARCHAR(512) NULL, + STR_PROP_3 VARCHAR(512) NULL, + INT_PROP_1 INT NULL, + INT_PROP_2 INT NULL, + LONG_PROP_1 longint NULL, + LONG_PROP_2 longint NULL, + DEC_PROP_1 NUMERIC(13,4) NULL, + DEC_PROP_2 NUMERIC(13,4) NULL, + BOOL_PROP_1 varchar(5) NULL, + BOOL_PROP_2 varchar(5) NULL, + PRIMARY KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(sched_name,TRIGGER_NAME,TRIGGER_GROUP) +); + +create table qrtz_blob_triggers( + sched_name varchar(120) not null, + trigger_name varchar(200) not null, + trigger_group varchar(200) not null, + blob_data long varbinary , +primary key (sched_name,trigger_name,trigger_group), +foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) +); + +create table qrtz_calendars( + sched_name varchar(120) not null, + calendar_name varchar(200) not null, + calendar long varbinary not null, +primary key (sched_name,calendar_name) +); + +create table qrtz_paused_trigger_grps + ( + sched_name varchar(120) not null, + trigger_group varchar(200) not null, +primary key (sched_name,trigger_group) +); + +create table qrtz_fired_triggers( + sched_name varchar(120) not null, + entry_id varchar(95) not null, + trigger_name varchar(200) not null, + trigger_group varchar(200) not null, + instance_name varchar(200) not null, + fired_time longint not null, + sched_time longint not null, + priority integer not null, + state varchar(16) not null, + job_name varchar(200) null, + job_group varchar(200) null, + is_nonconcurrent varchar(5) null, + requests_recovery varchar(5) null, +primary key (sched_name,entry_id) +); + +create table qrtz_scheduler_state + ( + sched_name varchar(120) not null, + instance_name varchar(200) not null, + last_checkin_time longint not null, + checkin_interval longint not null, +primary key (sched_name,instance_name) +); + +create table qrtz_locks + ( + sched_name varchar(120) not null, + lock_name varchar(40) not null, +primary key (sched_name,lock_name) +); diff --git a/spring-boot-demo-task-quartz/init/dbTables/tables_cubrid.sql b/spring-boot-demo-task-quartz/init/dbTables/tables_cubrid.sql new file mode 100644 index 0000000..8706dec --- /dev/null +++ b/spring-boot-demo-task-quartz/init/dbTables/tables_cubrid.sql @@ -0,0 +1,188 @@ + +-- Thanks to Timothy Anyona for this script +-- CUBRID 8.4.1+ + +-- In your Quartz properties file, you'll need to set +-- org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.CUBRIDDelegate + + +DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS; +DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE; +DROP TABLE IF EXISTS QRTZ_LOCKS; +DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_JOB_DETAILS; +DROP TABLE IF EXISTS QRTZ_CALENDARS; + + +CREATE TABLE QRTZ_JOB_DETAILS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + JOB_NAME VARCHAR(200) NOT NULL, + JOB_GROUP VARCHAR(200) NOT NULL, + DESCRIPTION VARCHAR(250) NULL, + JOB_CLASS_NAME VARCHAR(250) NOT NULL, + IS_DURABLE BIT(1) NOT NULL, + IS_NONCONCURRENT BIT(1) NOT NULL, + IS_UPDATE_DATA BIT(1) NOT NULL, + REQUESTS_RECOVERY BIT(1) NOT NULL, + JOB_DATA BLOB NULL, + PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) +); + +CREATE TABLE QRTZ_TRIGGERS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + JOB_NAME VARCHAR(200) NOT NULL, + JOB_GROUP VARCHAR(200) NOT NULL, + DESCRIPTION VARCHAR(250) NULL, + NEXT_FIRE_TIME BIGINT NULL, + PREV_FIRE_TIME BIGINT NULL, + PRIORITY INTEGER NULL, + TRIGGER_STATE VARCHAR(16) NOT NULL, + TRIGGER_TYPE VARCHAR(8) NOT NULL, + START_TIME BIGINT NOT NULL, + END_TIME BIGINT NULL, + CALENDAR_NAME VARCHAR(200) NULL, + MISFIRE_INSTR SMALLINT NULL, + JOB_DATA BLOB NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) + REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP) +); + +CREATE TABLE QRTZ_SIMPLE_TRIGGERS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + REPEAT_COUNT BIGINT NOT NULL, + REPEAT_INTERVAL BIGINT NOT NULL, + TIMES_TRIGGERED BIGINT NOT NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_CRON_TRIGGERS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + CRON_EXPRESSION VARCHAR(200) NOT NULL, + TIME_ZONE_ID VARCHAR(80), + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_SIMPROP_TRIGGERS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + STR_PROP_1 VARCHAR(512) NULL, + STR_PROP_2 VARCHAR(512) NULL, + STR_PROP_3 VARCHAR(512) NULL, + INT_PROP_1 INT NULL, + INT_PROP_2 INT NULL, + LONG_PROP_1 BIGINT NULL, + LONG_PROP_2 BIGINT NULL, + DEC_PROP_1 NUMERIC(13,4) NULL, + DEC_PROP_2 NUMERIC(13,4) NULL, + BOOL_PROP_1 BIT(1) NULL, + BOOL_PROP_2 BIT(1) NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_BLOB_TRIGGERS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + BLOB_DATA BLOB NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_CALENDARS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + CALENDAR_NAME VARCHAR(200) NOT NULL, + CALENDAR BLOB NULL, + PRIMARY KEY (SCHED_NAME,CALENDAR_NAME) +); + +CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_FIRED_TRIGGERS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + ENTRY_ID VARCHAR(95) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + INSTANCE_NAME VARCHAR(200) NOT NULL, + FIRED_TIME BIGINT NOT NULL, + SCHED_TIME BIGINT NOT NULL, + PRIORITY INTEGER NOT NULL, + STATE VARCHAR(16) NOT NULL, + JOB_NAME VARCHAR(200) NULL, + JOB_GROUP VARCHAR(200) NULL, + IS_NONCONCURRENT BIT(1) NULL, + REQUESTS_RECOVERY BIT(1) NULL, + PRIMARY KEY (SCHED_NAME,ENTRY_ID) +); + +CREATE TABLE QRTZ_SCHEDULER_STATE + ( + SCHED_NAME VARCHAR(120) NOT NULL, + INSTANCE_NAME VARCHAR(200) NOT NULL, + LAST_CHECKIN_TIME BIGINT NOT NULL, + CHECKIN_INTERVAL BIGINT NOT NULL, + PRIMARY KEY (SCHED_NAME,INSTANCE_NAME) +); + +CREATE TABLE QRTZ_LOCKS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + LOCK_NAME VARCHAR(40) NOT NULL, + PRIMARY KEY (SCHED_NAME,LOCK_NAME) +); + + +CREATE INDEX IDX_QRTZ_J_REQ_RECOVERY ON QRTZ_JOB_DETAILS(SCHED_NAME,REQUESTS_RECOVERY); +CREATE INDEX IDX_QRTZ_J_GRP ON QRTZ_JOB_DETAILS(SCHED_NAME,JOB_GROUP); + + +CREATE INDEX IDX_QRTZ_T_JG ON QRTZ_TRIGGERS(SCHED_NAME,JOB_GROUP); +CREATE INDEX IDX_QRTZ_T_C ON QRTZ_TRIGGERS(SCHED_NAME,CALENDAR_NAME); +CREATE INDEX IDX_QRTZ_T_G ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP); +CREATE INDEX IDX_QRTZ_T_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_N_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_N_G_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_NEXT_FIRE_TIME ON QRTZ_TRIGGERS(SCHED_NAME,NEXT_FIRE_TIME); +CREATE INDEX IDX_QRTZ_T_NFT_ST ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME); +CREATE INDEX IDX_QRTZ_T_NFT_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME); +CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE_GRP ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE); + +CREATE INDEX IDX_QRTZ_FT_TRIG_INST_NAME ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME); +CREATE INDEX IDX_QRTZ_FT_INST_JOB_REQ_RCVRY ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY); +CREATE INDEX IDX_QRTZ_FT_J_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP); +CREATE INDEX IDX_QRTZ_FT_JG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_GROUP); +CREATE INDEX IDX_QRTZ_FT_T_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP); +CREATE INDEX IDX_QRTZ_FT_TG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_GROUP); diff --git a/spring-boot-demo-task-quartz/init/dbTables/tables_db2.sql b/spring-boot-demo-task-quartz/init/dbTables/tables_db2.sql new file mode 100644 index 0000000..f56ddda --- /dev/null +++ b/spring-boot-demo-task-quartz/init/dbTables/tables_db2.sql @@ -0,0 +1,148 @@ +# +# Thanks to Horia Muntean for submitting this.... +# +# .. known to work with DB2 7.1 and the JDBC driver "COM.ibm.db2.jdbc.net.DB2Driver" +# .. likely to work with others... +# +# In your Quartz properties file, you'll need to set +# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate +# +# If you're using DB2 6.x you'll want to set this property to +# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.DB2v6Delegate +# +# Note that the blob column size (e.g. blob(2000)) dictates the amount of data that can be stored in +# that blob - i.e. limits the amount of data you can put into your JobDataMap +# + + +create table qrtz_job_details ( + sched_name varchar(120) not null, + job_name varchar(80) not null, + job_group varchar(80) not null, + description varchar(120) null, + job_class_name varchar(128) not null, + is_durable varchar(1) not null, + is_nonconcurrent varchar(1) not null, + is_update_data varchar(1) not null, + requests_recovery varchar(1) not null, + job_data blob(2000), + primary key (sched_name,job_name,job_group) +) + +create table qrtz_triggers( + sched_name varchar(120) not null, + trigger_name varchar(80) not null, + trigger_group varchar(80) not null, + job_name varchar(80) not null, + job_group varchar(80) not null, + description varchar(120) null, + next_fire_time bigint, + prev_fire_time bigint, + priority integer, + trigger_state varchar(16) not null, + trigger_type varchar(8) not null, + start_time bigint not null, + end_time bigint, + calendar_name varchar(80), + misfire_instr smallint, + job_data blob(2000), + primary key (sched_name,trigger_name,trigger_group), + foreign key (sched_name,job_name,job_group) references qrtz_job_details(sched_name,job_name,job_group) +) + +create table qrtz_simple_triggers( + sched_name varchar(120) not null, + trigger_name varchar(80) not null, + trigger_group varchar(80) not null, + repeat_count bigint not null, + repeat_interval bigint not null, + times_triggered bigint not null, + primary key (sched_name,trigger_name,trigger_group), + foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) +) + +create table qrtz_cron_triggers( + sched_name varchar(120) not null, + trigger_name varchar(80) not null, + trigger_group varchar(80) not null, + cron_expression varchar(120) not null, + time_zone_id varchar(80), + primary key (sched_name,trigger_name,trigger_group), + foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) +) + +CREATE TABLE qrtz_simprop_triggers + ( + sched_name varchar(120) not null, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + STR_PROP_1 VARCHAR(512) NULL, + STR_PROP_2 VARCHAR(512) NULL, + STR_PROP_3 VARCHAR(512) NULL, + INT_PROP_1 INT NULL, + INT_PROP_2 INT NULL, + LONG_PROP_1 BIGINT NULL, + LONG_PROP_2 BIGINT NULL, + DEC_PROP_1 NUMERIC(13,4) NULL, + DEC_PROP_2 NUMERIC(13,4) NULL, + BOOL_PROP_1 VARCHAR(1) NULL, + BOOL_PROP_2 VARCHAR(1) NULL, + PRIMARY KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(sched_name,TRIGGER_NAME,TRIGGER_GROUP) +) + +create table qrtz_blob_triggers( + sched_name varchar(120) not null, + trigger_name varchar(80) not null, + trigger_group varchar(80) not null, + blob_data blob(2000) null, + primary key (sched_name,trigger_name,trigger_group), + foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) +) + +create table qrtz_calendars( + sched_name varchar(120) not null, + calendar_name varchar(80) not null, + calendar blob(2000) not null, + primary key (sched_name,calendar_name) +) + +create table qrtz_fired_triggers( + sched_name varchar(120) not null, + entry_id varchar(95) not null, + trigger_name varchar(80) not null, + trigger_group varchar(80) not null, + instance_name varchar(80) not null, + fired_time bigint not null, + sched_time bigint not null, + priority integer not null, + state varchar(16) not null, + job_name varchar(80) null, + job_group varchar(80) null, + is_nonconcurrent varchar(1) null, + requests_recovery varchar(1) null, + primary key (sched_name,entry_id) +); + + +create table qrtz_paused_trigger_grps( + sched_name varchar(120) not null, + trigger_group varchar(80) not null, + primary key (sched_name,trigger_group) +); + +create table qrtz_scheduler_state ( + sched_name varchar(120) not null, + instance_name varchar(80) not null, + last_checkin_time bigint not null, + checkin_interval bigint not null, + primary key (sched_name,instance_name) +); + +create table qrtz_locks + ( + sched_name varchar(120) not null, + lock_name varchar(40) not null, + primary key (sched_name,lock_name) +); diff --git a/spring-boot-demo-task-quartz/init/dbTables/tables_db2_v72.sql b/spring-boot-demo-task-quartz/init/dbTables/tables_db2_v72.sql new file mode 100644 index 0000000..2be28e0 --- /dev/null +++ b/spring-boot-demo-task-quartz/init/dbTables/tables_db2_v72.sql @@ -0,0 +1,163 @@ +-- +-- Thanks to Horia Muntean for submitting this, Mikkel Heisterberg for updating it +-- +-- .. known to work with DB2 7.2 and the JDBC driver "COM.ibm.db2.jdbc.net.DB2Driver" +-- .. likely to work with others... +-- +-- In your Quartz properties file, you'll need to set +-- org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.DB2v7Delegate +-- +-- or +-- +-- org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate +-- +-- If you're using DB2 6.x you'll want to set this property to +-- org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.DB2v6Delegate +-- +-- Note that the blob column size (e.g. blob(2000)) dictates the amount of data that can be stored in +-- that blob - i.e. limits the amount of data you can put into your JobDataMap +-- + +DROP TABLE QRTZ_FIRED_TRIGGERS; +DROP TABLE QRTZ_PAUSED_TRIGGER_GRPS; +DROP TABLE QRTZ_SCHEDULER_STATE; +DROP TABLE QRTZ_LOCKS; +DROP TABLE QRTZ_SIMPLE_TRIGGERS; +DROP TABLE QRTZ_SIMPROP_TRIGGERS; +DROP TABLE QRTZ_CRON_TRIGGERS; +DROP TABLE QRTZ_TRIGGERS; +DROP TABLE QRTZ_JOB_DETAILS; +DROP TABLE QRTZ_CALENDARS; +DROP TABLE QRTZ_BLOB_TRIGGERS; + +create table qrtz_job_details ( + sched_name varchar(120) not null, + job_name varchar(80) not null, + job_group varchar(80) not null, + description varchar(120), + job_class_name varchar(128) not null, + is_durable varchar(1) not null, + is_nonconcurrent varchar(1) not null, + is_update_data varchar(1) not null, + requests_recovery varchar(1) not null, + job_data blob(2000), + primary key (sched_name,job_name,job_group) +); + +create table qrtz_triggers( + sched_name varchar(120) not null, + trigger_name varchar(80) not null, + trigger_group varchar(80) not null, + job_name varchar(80) not null, + job_group varchar(80) not null, + description varchar(120), + next_fire_time bigint, + prev_fire_time bigint, + priority integer, + trigger_state varchar(16) not null, + trigger_type varchar(8) not null, + start_time bigint not null, + end_time bigint, + calendar_name varchar(80), + misfire_instr smallint, + job_data blob(2000), + primary key (sched_name,trigger_name,trigger_group), + foreign key (sched_name,job_name,job_group) references qrtz_job_details(sched_name,job_name,job_group) +); + +create table qrtz_simple_triggers( + sched_name varchar(120) not null, + trigger_name varchar(80) not null, + trigger_group varchar(80) not null, + repeat_count bigint not null, + repeat_interval bigint not null, + times_triggered bigint not null, + primary key (sched_name,trigger_name,trigger_group), + foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) +); + +create table qrtz_cron_triggers( + sched_name varchar(120) not null, + trigger_name varchar(80) not null, + trigger_group varchar(80) not null, + cron_expression varchar(120) not null, + time_zone_id varchar(80), + primary key (sched_name,trigger_name,trigger_group), + foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) +); + +CREATE TABLE qrtz_simprop_triggers + ( + sched_name varchar(120) not null, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + STR_PROP_1 VARCHAR(512) NULL, + STR_PROP_2 VARCHAR(512) NULL, + STR_PROP_3 VARCHAR(512) NULL, + INT_PROP_1 INT NULL, + INT_PROP_2 INT NULL, + LONG_PROP_1 BIGINT NULL, + LONG_PROP_2 BIGINT NULL, + DEC_PROP_1 NUMERIC(13,4) NULL, + DEC_PROP_2 NUMERIC(13,4) NULL, + BOOL_PROP_1 VARCHAR(1) NULL, + BOOL_PROP_2 VARCHAR(1) NULL, + PRIMARY KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(sched_name,TRIGGER_NAME,TRIGGER_GROUP) +); + +create table qrtz_blob_triggers( + sched_name varchar(120) not null, + trigger_name varchar(80) not null, + trigger_group varchar(80) not null, + blob_data blob(2000), + primary key (sched_name,trigger_name,trigger_group), + foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) +); + +create table qrtz_calendars( + sched_name varchar(120) not null, + calendar_name varchar(80) not null, + calendar blob(2000) not null, + primary key (sched_name,calendar_name) +); + +create table qrtz_fired_triggers( + sched_name varchar(120) not null, + entry_id varchar(95) not null, + trigger_name varchar(80) not null, + trigger_group varchar(80) not null, + instance_name varchar(80) not null, + fired_time bigint not null, + sched_time bigint not null, + priority integer not null, + state varchar(16) not null, + job_name varchar(80), + job_group varchar(80), + is_nonconcurrent varchar(1), + requests_recovery varchar(1), + primary key (sched_name,entry_id) +); + + +create table qrtz_paused_trigger_grps( + sched_name varchar(120) not null, + trigger_group varchar(80) not null, + primary key (sched_name,trigger_group) +); + +create table qrtz_scheduler_state ( + sched_name varchar(120) not null, + instance_name varchar(80) not null, + last_checkin_time bigint not null, + checkin_interval bigint not null, + primary key (sched_name,instance_name) +); + +create table qrtz_locks + ( + sched_name varchar(120) not null, + lock_name varchar(40) not null, + primary key (sched_name,lock_name) +); diff --git a/spring-boot-demo-task-quartz/init/dbTables/tables_db2_v8.sql b/spring-boot-demo-task-quartz/init/dbTables/tables_db2_v8.sql new file mode 100644 index 0000000..2c7b637 --- /dev/null +++ b/spring-boot-demo-task-quartz/init/dbTables/tables_db2_v8.sql @@ -0,0 +1,151 @@ +# +# Updated by Claudiu Crisan (claudiu.crisan@schartner.net) +# SQL scripts for DB2 ver 8.1 +# +# Changes: +# - "varchar(1)" replaced with "integer" +# - "field_name varchar(xxx) not null" replaced with "field_name varchar(xxx)" +# + + +DROP TABLE QRTZ_FIRED_TRIGGERS; +DROP TABLE QRTZ_PAUSED_TRIGGER_GRPS; +DROP TABLE QRTZ_SCHEDULER_STATE; +DROP TABLE QRTZ_LOCKS; +DROP TABLE QRTZ_SIMPLE_TRIGGERS; +DROP TABLE QRTZ_SIMPROP_TRIGGERS; +DROP TABLE QRTZ_CRON_TRIGGERS; +DROP TABLE QRTZ_TRIGGERS; +DROP TABLE QRTZ_JOB_DETAILS; +DROP TABLE QRTZ_CALENDARS; +DROP TABLE QRTZ_BLOB_TRIGGERS; + +create table qrtz_job_details( +sched_name varchar(120) not null, +job_name varchar(80) not null, +job_group varchar(80) not null, +description varchar(120), +job_class_name varchar(128) not null, +is_durable integer not null, +is_nonconcurrent integer not null, +is_update_data integer not null, +requests_recovery integer not null, +job_data blob(2000), +primary key (sched_name,job_name,job_group) +); + +create table qrtz_triggers( +sched_name varchar(120) not null, +trigger_name varchar(80) not null, +trigger_group varchar(80) not null, +job_name varchar(80) not null, +job_group varchar(80) not null, +description varchar(120), +next_fire_time bigint, +prev_fire_time bigint, +priority integer, +trigger_state varchar(16) not null, +trigger_type varchar(8) not null, +start_time bigint not null, +end_time bigint, +calendar_name varchar(80), +misfire_instr smallint, +job_data blob(2000), +primary key (sched_name,trigger_name,trigger_group), +foreign key (sched_name,job_name,job_group) references qrtz_job_details(sched_name,job_name,job_group) +); + +create table qrtz_simple_triggers( +sched_name varchar(120) not null, +trigger_name varchar(80) not null, +trigger_group varchar(80) not null, +repeat_count bigint not null, +repeat_interval bigint not null, +times_triggered bigint not null, +primary key (sched_name,trigger_name,trigger_group), +foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) +); + +create table qrtz_cron_triggers( +sched_name varchar(120) not null, +trigger_name varchar(80) not null, +trigger_group varchar(80) not null, +cron_expression varchar(120) not null, +time_zone_id varchar(80), +primary key (sched_name,trigger_name,trigger_group), +foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) +); + +CREATE TABLE qrtz_simprop_triggers + ( + sched_name varchar(120) not null, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + STR_PROP_1 VARCHAR(512) NULL, + STR_PROP_2 VARCHAR(512) NULL, + STR_PROP_3 VARCHAR(512) NULL, + INT_PROP_1 INT NULL, + INT_PROP_2 INT NULL, + LONG_PROP_1 BIGINT NULL, + LONG_PROP_2 BIGINT NULL, + DEC_PROP_1 NUMERIC(13,4) NULL, + DEC_PROP_2 NUMERIC(13,4) NULL, + BOOL_PROP_1 VARCHAR(1) NULL, + BOOL_PROP_2 VARCHAR(1) NULL, + PRIMARY KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(sched_name,TRIGGER_NAME,TRIGGER_GROUP) +); + +create table qrtz_blob_triggers( +sched_name varchar(120) not null, +trigger_name varchar(80) not null, +trigger_group varchar(80) not null, +blob_data blob(2000), +primary key (sched_name,trigger_name,trigger_group), +foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) +); + +create table qrtz_calendars( +sched_name varchar(120) not null, +calendar_name varchar(80) not null, +calendar blob(2000) not null, +primary key (calendar_name) +); + +create table qrtz_fired_triggers( +sched_name varchar(120) not null, +entry_id varchar(95) not null, +trigger_name varchar(80) not null, +trigger_group varchar(80) not null, +instance_name varchar(80) not null, +fired_time bigint not null, +sched_time bigint not null, +priority integer not null, +state varchar(16) not null, +job_name varchar(80), +job_group varchar(80), +is_nonconcurrent integer, +requests_recovery integer, +primary key (sched_name,entry_id) +); + +create table qrtz_paused_trigger_grps( +sched_name varchar(120) not null, +trigger_group varchar(80) not null, +primary key (sched_name,trigger_group) +); + +create table qrtz_scheduler_state( +sched_name varchar(120) not null, +instance_name varchar(80) not null, +last_checkin_time bigint not null, +checkin_interval bigint not null, +primary key (sched_name,instance_name) +); + +create table qrtz_locks( +sched_name varchar(120) not null, +lock_name varchar(40) not null, +primary key (sched_name,lock_name) +); diff --git a/spring-boot-demo-task-quartz/init/dbTables/tables_db2_v95.sql b/spring-boot-demo-task-quartz/init/dbTables/tables_db2_v95.sql new file mode 100644 index 0000000..05670b0 --- /dev/null +++ b/spring-boot-demo-task-quartz/init/dbTables/tables_db2_v95.sql @@ -0,0 +1,141 @@ +DROP TABLE QRTZ_FIRED_TRIGGERS; +DROP TABLE QRTZ_PAUSED_TRIGGER_GRPS; +DROP TABLE QRTZ_SCHEDULER_STATE; +DROP TABLE QRTZ_LOCKS; +DROP TABLE QRTZ_SIMPLE_TRIGGERS; +DROP TABLE QRTZ_SIMPROP_TRIGGERS; +DROP TABLE QRTZ_CRON_TRIGGERS; +DROP TABLE QRTZ_TRIGGERS; +DROP TABLE QRTZ_JOB_DETAILS; +DROP TABLE QRTZ_CALENDARS; +DROP TABLE QRTZ_BLOB_TRIGGERS; + +create table qrtz_job_details( +sched_name varchar(120) not null, +job_name varchar(80) not null, +job_group varchar(80) not null, +description varchar(120), +job_class_name varchar(128) not null, +is_durable integer not null, +is_nonconcurrent integer not null, +is_update_data integer not null, +requests_recovery integer not null, +job_data blob(2000), +primary key (sched_name,job_name,job_group) +); + +create table qrtz_triggers( +sched_name varchar(120) not null, +trigger_name varchar(80) not null, +trigger_group varchar(80) not null, +job_name varchar(80) not null, +job_group varchar(80) not null, +description varchar(120), +next_fire_time bigint, +prev_fire_time bigint, +priority integer, +trigger_state varchar(16) not null, +trigger_type varchar(8) not null, +start_time bigint not null, +end_time bigint, +calendar_name varchar(80), +misfire_instr smallint, +job_data blob(2000), +primary key (sched_name,trigger_name,trigger_group), +foreign key (sched_name,job_name,job_group) references qrtz_job_details(sched_name,job_name,job_group) +); + +create table qrtz_simple_triggers( +sched_name varchar(120) not null, +trigger_name varchar(80) not null, +trigger_group varchar(80) not null, +repeat_count bigint not null, +repeat_interval bigint not null, +times_triggered bigint not null, +primary key (sched_name,trigger_name,trigger_group), +foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) +); + +create table qrtz_cron_triggers( +sched_name varchar(120) not null, +trigger_name varchar(80) not null, +trigger_group varchar(80) not null, +cron_expression varchar(120) not null, +time_zone_id varchar(80), +primary key (sched_name,trigger_name,trigger_group), +foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) +); + +CREATE TABLE qrtz_simprop_triggers + ( + sched_name varchar(120) not null, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + STR_PROP_1 VARCHAR(512), + STR_PROP_2 VARCHAR(512), + STR_PROP_3 VARCHAR(512), + INT_PROP_1 INT, + INT_PROP_2 INT, + LONG_PROP_1 BIGINT, + LONG_PROP_2 BIGINT, + DEC_PROP_1 NUMERIC(13,4), + DEC_PROP_2 NUMERIC(13,4), + BOOL_PROP_1 VARCHAR(1), + BOOL_PROP_2 VARCHAR(1), + PRIMARY KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(sched_name,TRIGGER_NAME,TRIGGER_GROUP) +); + +create table qrtz_blob_triggers( +sched_name varchar(120) not null, +trigger_name varchar(80) not null, +trigger_group varchar(80) not null, +blob_data blob(2000), +primary key (sched_name,trigger_name,trigger_group), +foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) +); + +create table qrtz_calendars( +sched_name varchar(120) not null, +calendar_name varchar(80) not null, +calendar blob(2000) not null, +primary key (calendar_name) +); + +create table qrtz_fired_triggers( +sched_name varchar(120) not null, +entry_id varchar(95) not null, +trigger_name varchar(80) not null, +trigger_group varchar(80) not null, +instance_name varchar(80) not null, +fired_time bigint not null, +sched_time bigint not null, +priority integer not null, +state varchar(16) not null, +job_name varchar(80), +job_group varchar(80), +is_nonconcurrent integer, +requests_recovery integer, +primary key (sched_name,entry_id) +); + +create table qrtz_paused_trigger_grps( +sched_name varchar(120) not null, +trigger_group varchar(80) not null, +primary key (sched_name,trigger_group) +); + +create table qrtz_scheduler_state( +sched_name varchar(120) not null, +instance_name varchar(80) not null, +last_checkin_time bigint not null, +checkin_interval bigint not null, +primary key (sched_name,instance_name) +); + +create table qrtz_locks( +sched_name varchar(120) not null, +lock_name varchar(40) not null, +primary key (sched_name,lock_name) +); diff --git a/spring-boot-demo-task-quartz/init/dbTables/tables_derby.sql b/spring-boot-demo-task-quartz/init/dbTables/tables_derby.sql new file mode 100644 index 0000000..538e577 --- /dev/null +++ b/spring-boot-demo-task-quartz/init/dbTables/tables_derby.sql @@ -0,0 +1,174 @@ +-- +-- Apache Derby scripts by Steve Stewart, updated by Ronald Pomeroy +-- Based on Srinivas Venkatarangaiah's file for Cloudscape +-- +-- Known to work with Apache Derby 10.0.2.1, or 10.6.2.1 +-- +-- Updated by Zemian Deng on 08/21/2011 +-- * Fixed nullable fields on qrtz_simprop_triggers table. +-- * Added Derby QuickStart comments and drop tables statements. +-- +-- DerbyDB + Quartz Quick Guide: +-- * Derby comes with Oracle JDK! For Java6, it default install into C:/Program Files/Sun/JavaDB on Windows. +-- 1. Create a derby.properties file under JavaDB directory, and have the following: +-- derby.connection.requireAuthentication = true +-- derby.authentication.provider = BUILTIN +-- derby.user.quartz2=quartz2123 +-- 2. Start the DB server by running bin/startNetworkServer script. +-- 3. On a new terminal, run bin/ij tool to bring up an SQL prompt, then run: +-- connect 'jdbc:derby://localhost:1527/quartz2;user=quartz2;password=quartz2123;create=true'; +-- run 'quartz/docs/dbTables/tables_derby.sql'; +-- Now in quartz.properties, you may use these properties: +-- org.quartz.dataSource.quartzDataSource.driver = org.apache.derby.jdbc.ClientDriver +-- org.quartz.dataSource.quartzDataSource.URL = jdbc:derby://localhost:1527/quartz2 +-- org.quartz.dataSource.quartzDataSource.user = quartz2 +-- org.quartz.dataSource.quartzDataSource.password = quartz2123 +-- + +-- Auto drop and reset tables +-- Derby doesn't support if exists condition on table drop, so user must manually do this step if needed to. +-- drop table qrtz_fired_triggers; +-- drop table qrtz_paused_trigger_grps; +-- drop table qrtz_scheduler_state; +-- drop table qrtz_locks; +-- drop table qrtz_simple_triggers; +-- drop table qrtz_simprop_triggers; +-- drop table qrtz_cron_triggers; +-- drop table qrtz_blob_triggers; +-- drop table qrtz_triggers; +-- drop table qrtz_job_details; +-- drop table qrtz_calendars; + +create table qrtz_job_details ( +sched_name varchar(120) not null, +job_name varchar(200) not null, +job_group varchar(200) not null, +description varchar(250) , +job_class_name varchar(250) not null, +is_durable varchar(5) not null, +is_nonconcurrent varchar(5) not null, +is_update_data varchar(5) not null, +requests_recovery varchar(5) not null, +job_data blob, +primary key (sched_name,job_name,job_group) +); + +create table qrtz_triggers( +sched_name varchar(120) not null, +trigger_name varchar(200) not null, +trigger_group varchar(200) not null, +job_name varchar(200) not null, +job_group varchar(200) not null, +description varchar(250), +next_fire_time bigint, +prev_fire_time bigint, +priority integer, +trigger_state varchar(16) not null, +trigger_type varchar(8) not null, +start_time bigint not null, +end_time bigint, +calendar_name varchar(200), +misfire_instr smallint, +job_data blob, +primary key (sched_name,trigger_name,trigger_group), +foreign key (sched_name,job_name,job_group) references qrtz_job_details(sched_name,job_name,job_group) +); + +create table qrtz_simple_triggers( +sched_name varchar(120) not null, +trigger_name varchar(200) not null, +trigger_group varchar(200) not null, +repeat_count bigint not null, +repeat_interval bigint not null, +times_triggered bigint not null, +primary key (sched_name,trigger_name,trigger_group), +foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) +); + +create table qrtz_cron_triggers( +sched_name varchar(120) not null, +trigger_name varchar(200) not null, +trigger_group varchar(200) not null, +cron_expression varchar(120) not null, +time_zone_id varchar(80), +primary key (sched_name,trigger_name,trigger_group), +foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) +); + +create table qrtz_simprop_triggers + ( + sched_name varchar(120) not null, + trigger_name varchar(200) not null, + trigger_group varchar(200) not null, + str_prop_1 varchar(512), + str_prop_2 varchar(512), + str_prop_3 varchar(512), + int_prop_1 int, + int_prop_2 int, + long_prop_1 bigint, + long_prop_2 bigint, + dec_prop_1 numeric(13,4), + dec_prop_2 numeric(13,4), + bool_prop_1 varchar(5), + bool_prop_2 varchar(5), + primary key (sched_name,trigger_name,trigger_group), + foreign key (sched_name,trigger_name,trigger_group) + references qrtz_triggers(sched_name,trigger_name,trigger_group) +); + +create table qrtz_blob_triggers( +sched_name varchar(120) not null, +trigger_name varchar(200) not null, +trigger_group varchar(200) not null, +blob_data blob, +primary key (sched_name,trigger_name,trigger_group), +foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) +); + +create table qrtz_calendars( +sched_name varchar(120) not null, +calendar_name varchar(200) not null, +calendar blob not null, +primary key (sched_name,calendar_name) +); + +create table qrtz_paused_trigger_grps + ( + sched_name varchar(120) not null, + trigger_group varchar(200) not null, +primary key (sched_name,trigger_group) +); + +create table qrtz_fired_triggers( +sched_name varchar(120) not null, +entry_id varchar(95) not null, +trigger_name varchar(200) not null, +trigger_group varchar(200) not null, +instance_name varchar(200) not null, +fired_time bigint not null, +sched_time bigint not null, +priority integer not null, +state varchar(16) not null, +job_name varchar(200), +job_group varchar(200), +is_nonconcurrent varchar(5), +requests_recovery varchar(5), +primary key (sched_name,entry_id) +); + +create table qrtz_scheduler_state + ( + sched_name varchar(120) not null, + instance_name varchar(200) not null, + last_checkin_time bigint not null, + checkin_interval bigint not null, +primary key (sched_name,instance_name) +); + +create table qrtz_locks + ( + sched_name varchar(120) not null, + lock_name varchar(40) not null, +primary key (sched_name,lock_name) +); + diff --git a/spring-boot-demo-task-quartz/init/dbTables/tables_derby_previous.sql b/spring-boot-demo-task-quartz/init/dbTables/tables_derby_previous.sql new file mode 100644 index 0000000..910b6ec --- /dev/null +++ b/spring-boot-demo-task-quartz/init/dbTables/tables_derby_previous.sql @@ -0,0 +1,141 @@ +-- +-- Apache Derby scripts by Steve Stewart. +-- Based on Srinivas Venkatarangaiah's file for Cloudscape +-- +-- In your Quartz properties file, you'll need to set +-- org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.CloudscapeDelegate +-- +-- Known to work with Apache Derby 10.0.2.1 +-- + +create table qrtz_job_details ( +sched_name varchar(120) not null, +job_name varchar(200) not null, +job_group varchar(200) not null, +description varchar(250) , +job_class_name varchar(250) not null, +is_durable varchar(5) not null, +is_nonconcurrent varchar(5) not null, +is_update_data varchar(5) not null, +requests_recovery varchar(5) not null, +job_data blob, +primary key (sched_name,job_name,job_group) +); + +create table qrtz_triggers ( +sched_name varchar(120) not null, +trigger_name varchar(200) not null, +trigger_group varchar(200) not null, +job_name varchar(200) not null, +job_group varchar(200) not null, +description varchar(250) , +next_fire_time bigint, +prev_fire_time bigint, +priority integer, +trigger_state varchar(16) not null, +trigger_type varchar(8) not null, +start_time bigint not null, +end_time bigint, +calendar_name varchar(200), +misfire_instr smallint, +job_data blob, +primary key (sched_name,trigger_name,trigger_group), +foreign key (sched_name,job_name,job_group) references qrtz_job_details(sched_name,job_name,job_group) +); + +create table qrtz_simple_triggers ( +sched_name varchar(120) not null, +trigger_name varchar(200) not null, +trigger_group varchar(200) not null, +repeat_count bigint not null, +repeat_interval bigint not null, +times_triggered bigint not null, +primary key (sched_name,trigger_name,trigger_group), +foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) +); + +create table qrtz_cron_triggers ( +sched_name varchar(120) not null, +trigger_name varchar(200) not null, +trigger_group varchar(200) not null, +cron_expression varchar(120) not null, +time_zone_id varchar(80), +primary key (sched_name,trigger_name,trigger_group), +foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) +); + +create table qrtz_simprop_triggers +( + sched_name varchar(120) not null, + trigger_name varchar(200) not null, + trigger_group varchar(200) not null, + str_prop_1 varchar(512), + str_prop_2 varchar(512), + str_prop_3 varchar(512), + int_prop_1 int, + int_prop_2 int, + long_prop_1 bigint, + long_prop_2 bigint, + dec_prop_1 numeric(13,4), + dec_prop_2 numeric(13,4), + bool_prop_1 varchar(5), + bool_prop_2 varchar(5), + primary key (sched_name,trigger_name,trigger_group), + foreign key (sched_name,trigger_name,trigger_group) + references qrtz_triggers(sched_name,trigger_name,trigger_group) +); + +create table qrtz_blob_triggers ( +sched_name varchar(120) not null, +trigger_name varchar(200) not null, +trigger_group varchar(200) not null, +blob_data blob , +primary key (sched_name,trigger_name,trigger_group), +foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) +); + +create table qrtz_calendars ( +sched_name varchar(120) not null, +calendar_name varchar(200) not null, +calendar blob not null, +primary key (sched_name,calendar_name) +); + +create table qrtz_paused_trigger_grps ( +sched_name varchar(120) not null, +trigger_group varchar(200) not null, +primary key (sched_name,trigger_group) +); + +create table qrtz_fired_triggers ( +sched_name varchar(120) not null, +entry_id varchar(95) not null, +trigger_name varchar(200) not null, +trigger_group varchar(200) not null, +instance_name varchar(200) not null, +fired_time bigint not null, +sched_time bigint not null, +priority integer not null, +state varchar(16) not null, +job_name varchar(200), +job_group varchar(200), +is_nonconcurrent varchar(5), +requests_recovery varchar(5), +primary key (sched_name,entry_id) +); + +create table qrtz_scheduler_state ( +sched_name varchar(120) not null, +instance_name varchar(200) not null, +last_checkin_time bigint not null, +checkin_interval bigint not null, +primary key (sched_name,instance_name) +); + +create table qrtz_locks ( +sched_name varchar(120) not null, +lock_name varchar(40) not null, +primary key (sched_name,lock_name) +); + +commit; diff --git a/spring-boot-demo-task-quartz/init/dbTables/tables_firebird.sql b/spring-boot-demo-task-quartz/init/dbTables/tables_firebird.sql new file mode 100644 index 0000000..e236c28 --- /dev/null +++ b/spring-boot-demo-task-quartz/init/dbTables/tables_firebird.sql @@ -0,0 +1,154 @@ + +-- +-- Thanks to Leonardo Alves +-- + + +DROP TABLE QRTZ_FIRED_TRIGGERS; +DROP TABLE QRTZ_PAUSED_TRIGGER_GRPS; +DROP TABLE QRTZ_SCHEDULER_STATE; +DROP TABLE QRTZ_LOCKS; +DROP TABLE QRTZ_SIMPLE_TRIGGERS; +DROP TABLE QRTZ_SIMPROP_TRIGGERS; +DROP TABLE QRTZ_CRON_TRIGGERS; +DROP TABLE QRTZ_BLOB_TRIGGERS; +DROP TABLE QRTZ_TRIGGERS; +DROP TABLE QRTZ_JOB_DETAILS; +DROP TABLE QRTZ_CALENDARS; + + +CREATE TABLE QRTZ_JOB_DETAILS ( + SCHED_NAME VARCHAR(120) NOT NULL, + JOB_NAME VARCHAR(60) NOT NULL, + JOB_GROUP VARCHAR(60) NOT NULL, + DESCRIPTION VARCHAR(120), + JOB_CLASS_NAME VARCHAR(128) NOT NULL, + IS_DURABLE VARCHAR(1) NOT NULL, + IS_NONCONCURRENT VARCHAR(1) NOT NULL, + IS_UPDATE_DATA VARCHAR(1) NOT NULL, + REQUESTS_RECOVERY VARCHAR(1) NOT NULL, + JOB_DATA BLOB, + CONSTRAINT PK_QRTZ_JOB_DETAILS PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) +); + +CREATE TABLE QRTZ_TRIGGERS ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(60) NOT NULL, + TRIGGER_GROUP VARCHAR(60) NOT NULL, + JOB_NAME VARCHAR(60) NOT NULL, + JOB_GROUP VARCHAR(60) NOT NULL, + DESCRIPTION VARCHAR(120), + NEXT_FIRE_TIME BIGINT, + PREV_FIRE_TIME BIGINT, + PRIORITY INTEGER, + TRIGGER_STATE VARCHAR(16) NOT NULL, + TRIGGER_TYPE VARCHAR(8) NOT NULL, + START_TIME BIGINT NOT NULL, + END_TIME BIGINT, + CALENDAR_NAME VARCHAR(60), + MISFIRE_INSTR SMALLINT, + JOB_DATA BLOB, + CONSTRAINT PK_QRTZ_TRIGGERS PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + CONSTRAINT FK_QRTZ_TRIGGERS_1 FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) + REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP) +); + +CREATE TABLE QRTZ_SIMPLE_TRIGGERS ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(60) NOT NULL, + TRIGGER_GROUP VARCHAR(60) NOT NULL, + REPEAT_COUNT BIGINT NOT NULL, + REPEAT_INTERVAL BIGINT NOT NULL, + TIMES_TRIGGERED BIGINT NOT NULL, + CONSTRAINT PK_QRTZ_SIMPLE_TRIGGERS PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + CONSTRAINT FK_QRTZ_SIMPLE_TRIGGERS_1 FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_SIMPROP_TRIGGERS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + STR_PROP_1 VARCHAR(512) NULL, + STR_PROP_2 VARCHAR(512) NULL, + STR_PROP_3 VARCHAR(512) NULL, + INT_PROP_1 INT NULL, + INT_PROP_2 INT NULL, + LONG_PROP_1 BIGINT NULL, + LONG_PROP_2 BIGINT NULL, + DEC_PROP_1 NUMERIC(13,4) NULL, + DEC_PROP_2 NUMERIC(13,4) NULL, + BOOL_PROP_1 VARCHAR(1) NULL, + BOOL_PROP_2 VARCHAR(1) NULL, + CONSTRAINT PK_QRTZ_SIMPROP_TRIGGERS PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + CONSTRAINT FK_QRTZ_SIMPROP_TRIGGERS_1 FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_CRON_TRIGGERS ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(60) NOT NULL, + TRIGGER_GROUP VARCHAR(60) NOT NULL, + CRON_EXPRESSION VARCHAR(120) NOT NULL, + TIME_ZONE_ID VARCHAR(60), + CONSTRAINT PK_QRTZ_SIMPLE_TRG PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + CONSTRAINT FK_QRTZ_SIMPLE_TRG_1 FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_BLOB_TRIGGERS ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(60) NOT NULL, + TRIGGER_GROUP VARCHAR(60) NOT NULL, + BLOB_DATA BLOB, + CONSTRAINT PK_QRTZ_BLOB_TRIGGERS PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + CONSTRAINT FK_QRTZ_BLOB_TRIGGERS_1 FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_CALENDARS ( + SCHED_NAME VARCHAR(120) NOT NULL, + CALENDAR_NAME VARCHAR(60) NOT NULL, + CALENDAR BLOB NOT NULL, + CONSTRAINT PK_QRTZ_CALENDARS PRIMARY KEY (SCHED_NAME,CALENDAR_NAME) +); + +CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_GROUP VARCHAR(60) NOT NULL, + CONSTRAINT PK_QRTZ_PAUSED_TRIGGER_GRPS PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_FIRED_TRIGGERS ( + SCHED_NAME VARCHAR(120) NOT NULL, + ENTRY_ID VARCHAR(95) NOT NULL, + TRIGGER_NAME VARCHAR(60) NOT NULL, + TRIGGER_GROUP VARCHAR(60) NOT NULL, + INSTANCE_NAME VARCHAR(80) NOT NULL, + FIRED_TIME BIGINT NOT NULL, + SCHED_TIME BIGINT NOT NULL, + PRIORITY INTEGER NOT NULL, + STATE VARCHAR(16) NOT NULL, + JOB_NAME VARCHAR(60), + JOB_GROUP VARCHAR(60), + IS_NONCONCURRENT VARCHAR(1), + REQUESTS_RECOVERY VARCHAR(1), + CONSTRAINT PK_QRTZ_FIRED_TRIGGERS PRIMARY KEY (SCHED_NAME,ENTRY_ID) +); + +CREATE TABLE QRTZ_SCHEDULER_STATE ( + SCHED_NAME VARCHAR(120) NOT NULL, + INSTANCE_NAME VARCHAR(80) NOT NULL, + LAST_CHECKIN_TIME BIGINT NOT NULL, + CHECKIN_INTERVAL BIGINT NOT NULL, + CONSTRAINT PK_QRTZ_SCHEDULER_STATE PRIMARY KEY (SCHED_NAME,INSTANCE_NAME) +); + +CREATE TABLE QRTZ_LOCKS ( + SCHED_NAME VARCHAR(120) NOT NULL, + LOCK_NAME VARCHAR(40) NOT NULL, + CONSTRAINT PK_QRTZ_LOCKS PRIMARY KEY (SCHED_NAME,LOCK_NAME) +); + +COMMIT; diff --git a/spring-boot-demo-task-quartz/init/dbTables/tables_h2.sql b/spring-boot-demo-task-quartz/init/dbTables/tables_h2.sql new file mode 100644 index 0000000..cc23d3c --- /dev/null +++ b/spring-boot-demo-task-quartz/init/dbTables/tables_h2.sql @@ -0,0 +1,249 @@ +-- Thanks to Amir Kibbar and Peter Rietzler for contributing the schema for H2 database, +-- and verifying that it works with Quartz's StdJDBCDelegate +-- +-- Note, Quartz depends on row-level locking which means you must use the MVCC=TRUE +-- setting on your H2 database, or you will experience dead-locks +-- +-- +-- In your Quartz properties file, you'll need to set +-- org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate + +CREATE TABLE QRTZ_CALENDARS ( + SCHED_NAME VARCHAR(120) NOT NULL, + CALENDAR_NAME VARCHAR (200) NOT NULL , + CALENDAR IMAGE NOT NULL +); + +CREATE TABLE QRTZ_CRON_TRIGGERS ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR (200) NOT NULL , + TRIGGER_GROUP VARCHAR (200) NOT NULL , + CRON_EXPRESSION VARCHAR (120) NOT NULL , + TIME_ZONE_ID VARCHAR (80) +); + +CREATE TABLE QRTZ_FIRED_TRIGGERS ( + SCHED_NAME VARCHAR(120) NOT NULL, + ENTRY_ID VARCHAR (95) NOT NULL , + TRIGGER_NAME VARCHAR (200) NOT NULL , + TRIGGER_GROUP VARCHAR (200) NOT NULL , + INSTANCE_NAME VARCHAR (200) NOT NULL , + FIRED_TIME BIGINT NOT NULL , + SCHED_TIME BIGINT NOT NULL , + PRIORITY INTEGER NOT NULL , + STATE VARCHAR (16) NOT NULL, + JOB_NAME VARCHAR (200) NULL , + JOB_GROUP VARCHAR (200) NULL , + IS_NONCONCURRENT BOOLEAN NULL , + REQUESTS_RECOVERY BOOLEAN NULL +); + +CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_GROUP VARCHAR (200) NOT NULL +); + +CREATE TABLE QRTZ_SCHEDULER_STATE ( + SCHED_NAME VARCHAR(120) NOT NULL, + INSTANCE_NAME VARCHAR (200) NOT NULL , + LAST_CHECKIN_TIME BIGINT NOT NULL , + CHECKIN_INTERVAL BIGINT NOT NULL +); + +CREATE TABLE QRTZ_LOCKS ( + SCHED_NAME VARCHAR(120) NOT NULL, + LOCK_NAME VARCHAR (40) NOT NULL +); + +CREATE TABLE QRTZ_JOB_DETAILS ( + SCHED_NAME VARCHAR(120) NOT NULL, + JOB_NAME VARCHAR (200) NOT NULL , + JOB_GROUP VARCHAR (200) NOT NULL , + DESCRIPTION VARCHAR (250) NULL , + JOB_CLASS_NAME VARCHAR (250) NOT NULL , + IS_DURABLE BOOLEAN NOT NULL , + IS_NONCONCURRENT BOOLEAN NOT NULL , + IS_UPDATE_DATA BOOLEAN NOT NULL , + REQUESTS_RECOVERY BOOLEAN NOT NULL , + JOB_DATA IMAGE NULL +); + +CREATE TABLE QRTZ_SIMPLE_TRIGGERS ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR (200) NOT NULL , + TRIGGER_GROUP VARCHAR (200) NOT NULL , + REPEAT_COUNT BIGINT NOT NULL , + REPEAT_INTERVAL BIGINT NOT NULL , + TIMES_TRIGGERED BIGINT NOT NULL +); + +CREATE TABLE qrtz_simprop_triggers + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + STR_PROP_1 VARCHAR(512) NULL, + STR_PROP_2 VARCHAR(512) NULL, + STR_PROP_3 VARCHAR(512) NULL, + INT_PROP_1 INTEGER NULL, + INT_PROP_2 INTEGER NULL, + LONG_PROP_1 BIGINT NULL, + LONG_PROP_2 BIGINT NULL, + DEC_PROP_1 NUMERIC(13,4) NULL, + DEC_PROP_2 NUMERIC(13,4) NULL, + BOOL_PROP_1 BOOLEAN NULL, + BOOL_PROP_2 BOOLEAN NULL, +); + +CREATE TABLE QRTZ_BLOB_TRIGGERS ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR (200) NOT NULL , + TRIGGER_GROUP VARCHAR (200) NOT NULL , + BLOB_DATA IMAGE NULL +); + +CREATE TABLE QRTZ_TRIGGERS ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR (200) NOT NULL , + TRIGGER_GROUP VARCHAR (200) NOT NULL , + JOB_NAME VARCHAR (200) NOT NULL , + JOB_GROUP VARCHAR (200) NOT NULL , + DESCRIPTION VARCHAR (250) NULL , + NEXT_FIRE_TIME BIGINT NULL , + PREV_FIRE_TIME BIGINT NULL , + PRIORITY INTEGER NULL , + TRIGGER_STATE VARCHAR (16) NOT NULL , + TRIGGER_TYPE VARCHAR (8) NOT NULL , + START_TIME BIGINT NOT NULL , + END_TIME BIGINT NULL , + CALENDAR_NAME VARCHAR (200) NULL , + MISFIRE_INSTR SMALLINT NULL , + JOB_DATA IMAGE NULL +); + +ALTER TABLE QRTZ_CALENDARS ADD + CONSTRAINT PK_QRTZ_CALENDARS PRIMARY KEY + ( + SCHED_NAME, + CALENDAR_NAME + ); + +ALTER TABLE QRTZ_CRON_TRIGGERS ADD + CONSTRAINT PK_QRTZ_CRON_TRIGGERS PRIMARY KEY + ( + SCHED_NAME, + TRIGGER_NAME, + TRIGGER_GROUP + ); + +ALTER TABLE QRTZ_FIRED_TRIGGERS ADD + CONSTRAINT PK_QRTZ_FIRED_TRIGGERS PRIMARY KEY + ( + SCHED_NAME, + ENTRY_ID + ); + +ALTER TABLE QRTZ_PAUSED_TRIGGER_GRPS ADD + CONSTRAINT PK_QRTZ_PAUSED_TRIGGER_GRPS PRIMARY KEY + ( + SCHED_NAME, + TRIGGER_GROUP + ); + +ALTER TABLE QRTZ_SCHEDULER_STATE ADD + CONSTRAINT PK_QRTZ_SCHEDULER_STATE PRIMARY KEY + ( + SCHED_NAME, + INSTANCE_NAME + ); + +ALTER TABLE QRTZ_LOCKS ADD + CONSTRAINT PK_QRTZ_LOCKS PRIMARY KEY + ( + SCHED_NAME, + LOCK_NAME + ); + +ALTER TABLE QRTZ_JOB_DETAILS ADD + CONSTRAINT PK_QRTZ_JOB_DETAILS PRIMARY KEY + ( + SCHED_NAME, + JOB_NAME, + JOB_GROUP + ); + +ALTER TABLE QRTZ_SIMPLE_TRIGGERS ADD + CONSTRAINT PK_QRTZ_SIMPLE_TRIGGERS PRIMARY KEY + ( + SCHED_NAME, + TRIGGER_NAME, + TRIGGER_GROUP + ); + +ALTER TABLE QRTZ_SIMPROP_TRIGGERS ADD + CONSTRAINT PK_QRTZ_SIMPROP_TRIGGERS PRIMARY KEY + ( + SCHED_NAME, + TRIGGER_NAME, + TRIGGER_GROUP + ); + +ALTER TABLE QRTZ_TRIGGERS ADD + CONSTRAINT PK_QRTZ_TRIGGERS PRIMARY KEY + ( + SCHED_NAME, + TRIGGER_NAME, + TRIGGER_GROUP + ); + +ALTER TABLE QRTZ_CRON_TRIGGERS ADD + CONSTRAINT FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS FOREIGN KEY + ( + SCHED_NAME, + TRIGGER_NAME, + TRIGGER_GROUP + ) REFERENCES QRTZ_TRIGGERS ( + SCHED_NAME, + TRIGGER_NAME, + TRIGGER_GROUP + ) ON DELETE CASCADE; + + +ALTER TABLE QRTZ_SIMPLE_TRIGGERS ADD + CONSTRAINT FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS FOREIGN KEY + ( + SCHED_NAME, + TRIGGER_NAME, + TRIGGER_GROUP + ) REFERENCES QRTZ_TRIGGERS ( + SCHED_NAME, + TRIGGER_NAME, + TRIGGER_GROUP + ) ON DELETE CASCADE; + +ALTER TABLE QRTZ_SIMPROP_TRIGGERS ADD + CONSTRAINT FK_QRTZ_SIMPROP_TRIGGERS_QRTZ_TRIGGERS FOREIGN KEY + ( + SCHED_NAME, + TRIGGER_NAME, + TRIGGER_GROUP + ) REFERENCES QRTZ_TRIGGERS ( + SCHED_NAME, + TRIGGER_NAME, + TRIGGER_GROUP + ) ON DELETE CASCADE; + + +ALTER TABLE QRTZ_TRIGGERS ADD + CONSTRAINT FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS FOREIGN KEY + ( + SCHED_NAME, + JOB_NAME, + JOB_GROUP + ) REFERENCES QRTZ_JOB_DETAILS ( + SCHED_NAME, + JOB_NAME, + JOB_GROUP + ); + +COMMIT; diff --git a/spring-boot-demo-task-quartz/init/dbTables/tables_hsqldb.sql b/spring-boot-demo-task-quartz/init/dbTables/tables_hsqldb.sql new file mode 100644 index 0000000..a2fede8 --- /dev/null +++ b/spring-boot-demo-task-quartz/init/dbTables/tables_hsqldb.sql @@ -0,0 +1,161 @@ +-- +-- In your Quartz properties file, you'll need to set +-- org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.HSQLDBDelegate +-- + +DROP TABLE qrtz_locks IF EXISTS; +DROP TABLE qrtz_scheduler_state IF EXISTS; +DROP TABLE qrtz_fired_triggers IF EXISTS; +DROP TABLE qrtz_paused_trigger_grps IF EXISTS; +DROP TABLE qrtz_calendars IF EXISTS; +DROP TABLE qrtz_blob_triggers IF EXISTS; +DROP TABLE qrtz_cron_triggers IF EXISTS; +DROP TABLE qrtz_simple_triggers IF EXISTS; +DROP TABLE qrtz_simprop_triggers IF EXISTS; +DROP TABLE qrtz_triggers IF EXISTS; +DROP TABLE qrtz_job_details IF EXISTS; + +CREATE TABLE qrtz_job_details +( +SCHED_NAME VARCHAR(120) NOT NULL, +JOB_NAME VARCHAR(200) NOT NULL, +JOB_GROUP VARCHAR(200) NOT NULL, +DESCRIPTION VARCHAR(250) NULL, +JOB_CLASS_NAME VARCHAR(250) NOT NULL, +IS_DURABLE BOOLEAN NOT NULL, +IS_NONCONCURRENT BOOLEAN NOT NULL, +IS_UPDATE_DATA BOOLEAN NOT NULL, +REQUESTS_RECOVERY BOOLEAN NOT NULL, +JOB_DATA BINARY NULL, +PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) +); + +CREATE TABLE qrtz_triggers +( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_NAME VARCHAR(200) NOT NULL, +TRIGGER_GROUP VARCHAR(200) NOT NULL, +JOB_NAME VARCHAR(200) NOT NULL, +JOB_GROUP VARCHAR(200) NOT NULL, +DESCRIPTION VARCHAR(250) NULL, +NEXT_FIRE_TIME NUMERIC(13) NULL, +PREV_FIRE_TIME NUMERIC(13) NULL, +PRIORITY INTEGER NULL, +TRIGGER_STATE VARCHAR(16) NOT NULL, +TRIGGER_TYPE VARCHAR(8) NOT NULL, +START_TIME NUMERIC(13) NOT NULL, +END_TIME NUMERIC(13) NULL, +CALENDAR_NAME VARCHAR(200) NULL, +MISFIRE_INSTR NUMERIC(2) NULL, +JOB_DATA BINARY NULL, +PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), +FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) +REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP) +); + +CREATE TABLE qrtz_simple_triggers +( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_NAME VARCHAR(200) NOT NULL, +TRIGGER_GROUP VARCHAR(200) NOT NULL, +REPEAT_COUNT NUMERIC(7) NOT NULL, +REPEAT_INTERVAL NUMERIC(12) NOT NULL, +TIMES_TRIGGERED NUMERIC(10) NOT NULL, +PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), +FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE qrtz_cron_triggers +( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_NAME VARCHAR(200) NOT NULL, +TRIGGER_GROUP VARCHAR(200) NOT NULL, +CRON_EXPRESSION VARCHAR(120) NOT NULL, +TIME_ZONE_ID VARCHAR(80), +PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), +FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE qrtz_simprop_triggers + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + STR_PROP_1 VARCHAR(512) NULL, + STR_PROP_2 VARCHAR(512) NULL, + STR_PROP_3 VARCHAR(512) NULL, + INT_PROP_1 NUMERIC(9) NULL, + INT_PROP_2 NUMERIC(9) NULL, + LONG_PROP_1 NUMERIC(13) NULL, + LONG_PROP_2 NUMERIC(13) NULL, + DEC_PROP_1 NUMERIC(13,4) NULL, + DEC_PROP_2 NUMERIC(13,4) NULL, + BOOL_PROP_1 BOOLEAN NULL, + BOOL_PROP_2 BOOLEAN NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE qrtz_blob_triggers +( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_NAME VARCHAR(200) NOT NULL, +TRIGGER_GROUP VARCHAR(200) NOT NULL, +BLOB_DATA BINARY NULL, +PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), +FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE qrtz_calendars +( +SCHED_NAME VARCHAR(120) NOT NULL, +CALENDAR_NAME VARCHAR(200) NOT NULL, +CALENDAR BINARY NOT NULL, +PRIMARY KEY (SCHED_NAME,CALENDAR_NAME) +); + +CREATE TABLE qrtz_paused_trigger_grps +( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_GROUP VARCHAR(200) NOT NULL, +PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP) +); + +CREATE TABLE qrtz_fired_triggers +( +SCHED_NAME VARCHAR(120) NOT NULL, +ENTRY_ID VARCHAR(95) NOT NULL, +TRIGGER_NAME VARCHAR(200) NOT NULL, +TRIGGER_GROUP VARCHAR(200) NOT NULL, +INSTANCE_NAME VARCHAR(200) NOT NULL, +FIRED_TIME NUMERIC(13) NOT NULL, +SCHED_TIME NUMERIC(13) NOT NULL, +PRIORITY INTEGER NOT NULL, +STATE VARCHAR(16) NOT NULL, +JOB_NAME VARCHAR(200) NULL, +JOB_GROUP VARCHAR(200) NULL, +IS_NONCONCURRENT BOOLEAN NULL, +REQUESTS_RECOVERY BOOLEAN NULL, +PRIMARY KEY (SCHED_NAME,ENTRY_ID) +); + +CREATE TABLE qrtz_scheduler_state +( +SCHED_NAME VARCHAR(120) NOT NULL, +INSTANCE_NAME VARCHAR(200) NOT NULL, +LAST_CHECKIN_TIME NUMERIC(13) NOT NULL, +CHECKIN_INTERVAL NUMERIC(13) NOT NULL, +PRIMARY KEY (SCHED_NAME,INSTANCE_NAME) +); + +CREATE TABLE qrtz_locks +( +SCHED_NAME VARCHAR(120) NOT NULL, +LOCK_NAME VARCHAR(40) NOT NULL, +PRIMARY KEY (SCHED_NAME,LOCK_NAME) +); + diff --git a/spring-boot-demo-task-quartz/init/dbTables/tables_hsqldb_old.sql b/spring-boot-demo-task-quartz/init/dbTables/tables_hsqldb_old.sql new file mode 100644 index 0000000..2b24f02 --- /dev/null +++ b/spring-boot-demo-task-quartz/init/dbTables/tables_hsqldb_old.sql @@ -0,0 +1,156 @@ +# +# Thanks to Joseph Wilkicki for submitting this file's contents +# +# In your Quartz properties file, you'll need to set +# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.HSQLDBDelegate +# +# Some users report the need to change the fields +# with datatype "OTHER" to datatype "BINARY" with +# particular versions (e.g. 1.7.1) of HSQLDB +# + +CREATE TABLE qrtz_job_details +( +SCHED_NAME VARCHAR(120) NOT NULL, +JOB_NAME LONGVARCHAR(80) NOT NULL, +JOB_GROUP LONGVARCHAR(80) NOT NULL, +DESCRIPTION LONGVARCHAR(120) NULL, +JOB_CLASS_NAME LONGVARCHAR(128) NOT NULL, +IS_DURABLE LONGVARCHAR(1) NOT NULL, +IS_NONCONCURRENT LONGVARCHAR(1) NOT NULL, +IS_UPDATE_DATA LONGVARCHAR(1) NOT NULL, +REQUESTS_RECOVERY LONGVARCHAR(1) NOT NULL, +JOB_DATA OTHER NULL, +PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) +); + +CREATE TABLE qrtz_triggers +( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_NAME LONGVARCHAR(80) NOT NULL, +TRIGGER_GROUP LONGVARCHAR(80) NOT NULL, +JOB_NAME LONGVARCHAR(80) NOT NULL, +JOB_GROUP LONGVARCHAR(80) NOT NULL, +DESCRIPTION LONGVARCHAR(120) NULL, +NEXT_FIRE_TIME NUMERIC(13) NULL, +PREV_FIRE_TIME NUMERIC(13) NULL, +PRIORITY INTEGER NULL, +TRIGGER_STATE LONGVARCHAR(16) NOT NULL, +TRIGGER_TYPE LONGVARCHAR(8) NOT NULL, +START_TIME NUMERIC(13) NOT NULL, +END_TIME NUMERIC(13) NULL, +CALENDAR_NAME LONGVARCHAR(80) NULL, +MISFIRE_INSTR NUMERIC(2) NULL, +JOB_DATA OTHER NULL, +PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), +FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) +REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP) +); + +CREATE TABLE qrtz_simple_triggers +( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_NAME LONGVARCHAR(80) NOT NULL, +TRIGGER_GROUP LONGVARCHAR(80) NOT NULL, +REPEAT_COUNT NUMERIC(7) NOT NULL, +REPEAT_INTERVAL NUMERIC(12) NOT NULL, +TIMES_TRIGGERED NUMERIC(10) NOT NULL, +PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), +FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE qrtz_cron_triggers +( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_NAME LONGVARCHAR(80) NOT NULL, +TRIGGER_GROUP LONGVARCHAR(80) NOT NULL, +CRON_EXPRESSION LONGVARCHAR(120) NOT NULL, +TIME_ZONE_ID LONGVARCHAR(80), +PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), +FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE qrtz_simprop_triggers + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME LONGVARCHAR(200) NOT NULL, + TRIGGER_GROUP LONGVARCHAR(200) NOT NULL, + STR_PROP_1 LONGVARCHAR(512) NULL, + STR_PROP_2 LONGVARCHAR(512) NULL, + STR_PROP_3 LONGVARCHAR(512) NULL, + INT_PROP_1 NUMERIC(9) NULL, + INT_PROP_2 NUMERIC(9) NULL, + LONG_PROP_1 NUMERIC(13) NULL, + LONG_PROP_2 NUMERIC(13) NULL, + DEC_PROP_1 NUMERIC(13,4) NULL, + DEC_PROP_2 NUMERIC(13,4) NULL, + BOOL_PROP_1 LONGVARCHAR(1) NULL, + BOOL_PROP_2 LONGVARCHAR(1) NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE qrtz_blob_triggers +( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_NAME LONGVARCHAR(80) NOT NULL, +TRIGGER_GROUP LONGVARCHAR(80) NOT NULL, +BLOB_DATA OTHER NULL, +PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), +FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE qrtz_calendars +( +SCHED_NAME VARCHAR(120) NOT NULL, +CALENDAR_NAME LONGVARCHAR(80) NOT NULL, +CALENDAR OTHER NOT NULL, +PRIMARY KEY (SCHED_NAME,CALENDAR_NAME) +); + +CREATE TABLE qrtz_paused_trigger_grps + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_GROUP LONGVARCHAR(80) NOT NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP) +); + +CREATE TABLE qrtz_fired_triggers + ( + SCHED_NAME VARCHAR(120) NOT NULL, + ENTRY_ID LONGVARCHAR(95) NOT NULL, + TRIGGER_NAME LONGVARCHAR(80) NOT NULL, + TRIGGER_GROUP LONGVARCHAR(80) NOT NULL, + INSTANCE_NAME LONGVARCHAR(80) NOT NULL, + FIRED_TIME NUMERIC(13) NOT NULL, + SCHED_TIME NUMERIC(13) NOT NULL, + PRIORITY INTEGER NOT NULL, + STATE LONGVARCHAR(16) NOT NULL, + JOB_NAME LONGVARCHAR(80) NULL, + JOB_GROUP LONGVARCHAR(80) NULL, + IS_NONCONCURRENT LONGVARCHAR(1) NULL, + REQUESTS_RECOVERY LONGVARCHAR(1) NULL, + PRIMARY KEY (SCHED_NAME,ENTRY_ID) +); + +CREATE TABLE qrtz_scheduler_state + ( + SCHED_NAME VARCHAR(120) NOT NULL, + INSTANCE_NAME LONGVARCHAR(80) NOT NULL, + LAST_CHECKIN_TIME NUMERIC(13) NOT NULL, + CHECKIN_INTERVAL NUMERIC(13) NOT NULL, + PRIMARY KEY (SCHED_NAME,INSTANCE_NAME) +); + +CREATE TABLE qrtz_locks + ( + SCHED_NAME VARCHAR(120) NOT NULL, + LOCK_NAME LONGVARCHAR(40) NOT NULL, + PRIMARY KEY (SCHED_NAME,LOCK_NAME) +); + +commit; diff --git a/spring-boot-demo-task-quartz/init/dbTables/tables_informix.sql b/spring-boot-demo-task-quartz/init/dbTables/tables_informix.sql new file mode 100644 index 0000000..aa69dfe --- /dev/null +++ b/spring-boot-demo-task-quartz/init/dbTables/tables_informix.sql @@ -0,0 +1,186 @@ +{ } +{ Thanks to Keith Chew for submitting this. } +{ } +{ use the StdJDBCDelegate with Informix. } +{ } +{ note that Informix has a 18 cahracter limit on the table name, so the prefix had to be shortened to "q" instread of "qrtz_" } + +CREATE TABLE qblob_triggers ( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_NAME varchar(80) NOT NULL, +TRIGGER_GROUP varchar(80) NOT NULL, +BLOB_DATA byte in table +); + +ALTER TABLE qblob_triggers +ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP); + + +CREATE TABLE qcalendars ( +SCHED_NAME VARCHAR(120) NOT NULL, +CALENDAR_NAME varchar(80) NOT NULL, +CALENDAR byte in table NOT NULL +); + +ALTER TABLE qcalendars +ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,CALENDAR_NAME); + + +CREATE TABLE qcron_triggers ( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_NAME varchar(80) NOT NULL, +TRIGGER_GROUP varchar(80) NOT NULL, +CRON_EXPRESSION varchar(120) NOT NULL, +TIME_ZONE_ID varchar(80) +); + +ALTER TABLE qcron_triggers +ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP); + + +CREATE TABLE qfired_triggers ( +SCHED_NAME VARCHAR(120) NOT NULL, +ENTRY_ID varchar(95) NOT NULL, +TRIGGER_NAME varchar(80) NOT NULL, +TRIGGER_GROUP varchar(80) NOT NULL, +INSTANCE_NAME varchar(80) NOT NULL, +FIRED_TIME numeric(13) NOT NULL, +SCHED_TIME numeric(13) NOT NULL, +PRIORITY integer NOT NULL, +STATE varchar(16) NOT NULL, +JOB_NAME varchar(80), +JOB_GROUP varchar(80), +IS_NONCONCURRENT varchar(1), +REQUESTS_RECOVERY varchar(1) +); + +ALTER TABLE qfired_triggers +ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,ENTRY_ID); + + +CREATE TABLE qpaused_trigger_grps ( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_GROUP varchar(80) NOT NULL +); + +ALTER TABLE qpaused_trigger_grps +ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP); + + +CREATE TABLE qscheduler_state ( +SCHED_NAME VARCHAR(120) NOT NULL, +INSTANCE_NAME varchar(80) NOT NULL, +LAST_CHECKIN_TIME numeric(13) NOT NULL, +CHECKIN_INTERVAL numeric(13) NOT NULL +); + +ALTER TABLE qscheduler_state +ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,INSTANCE_NAME); + + +CREATE TABLE qlocks ( +SCHED_NAME VARCHAR(120) NOT NULL, +LOCK_NAME varchar(40) NOT NULL +); + +ALTER TABLE qlocks +ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,LOCK_NAME); + + +CREATE TABLE qjob_details ( +SCHED_NAME VARCHAR(120) NOT NULL, +JOB_NAME varchar(80) NOT NULL, +JOB_GROUP varchar(80) NOT NULL, +DESCRIPTION varchar(120), +JOB_CLASS_NAME varchar(128) NOT NULL, +IS_DURABLE varchar(1) NOT NULL, +IS_NONCONCURRENT varchar(1) NOT NULL, +IS_UPDATE_DATA varchar(1) NOT NULL, +REQUESTS_RECOVERY varchar(1) NOT NULL, +JOB_DATA byte in table +); + +ALTER TABLE qjob_details +ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,JOB_NAME, JOB_GROUP); + + +CREATE TABLE qsimple_triggers ( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_NAME varchar(80) NOT NULL, +TRIGGER_GROUP varchar(80) NOT NULL, +REPEAT_COUNT numeric(7) NOT NULL, +REPEAT_INTERVAL numeric(12) NOT NULL, +TIMES_TRIGGERED numeric(10) NOT NULL +); + +ALTER TABLE qsimple_triggers +ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP); + + +CREATE TABLE qsimprop_triggers + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + STR_PROP_1 VARCHAR(512) NULL, + STR_PROP_2 VARCHAR(512) NULL, + STR_PROP_3 VARCHAR(512) NULL, + INT_PROP_1 NUMERIC(9) NULL, + INT_PROP_2 NUMERIC(9) NULL, + LONG_PROP_1 NUMERIC(13) NULL, + LONG_PROP_2 NUMERIC(13) NULL, + DEC_PROP_1 NUMERIC(13,4) NULL, + DEC_PROP_2 NUMERIC(13,4) NULL, + BOOL_PROP_1 VARCHAR(1) NULL, + BOOL_PROP_2 VARCHAR(1) NULL, +); + +ALTER TABLE qsimprop_triggers +ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP); + + +CREATE TABLE qtriggers ( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_NAME varchar(80) NOT NULL, +TRIGGER_GROUP varchar(80) NOT NULL, +JOB_NAME varchar(80) NOT NULL, +JOB_GROUP varchar(80) NOT NULL, +DESCRIPTION varchar(120), +NEXT_FIRE_TIME numeric(13), +PREV_FIRE_TIME numeric(13), +PRIORITY integer, +TRIGGER_STATE varchar(16) NOT NULL, +TRIGGER_TYPE varchar(8) NOT NULL, +START_TIME numeric(13) NOT NULL, +END_TIME numeric(13), +CALENDAR_NAME varchar(80), +MISFIRE_INSTR numeric(2), +JOB_DATA byte in table +); + +ALTER TABLE qtriggers +ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP); + + +ALTER TABLE qblob_triggers +ADD CONSTRAINT FOREIGN KEY (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP) +REFERENCES qtriggers; + + +ALTER TABLE qcron_triggers +ADD CONSTRAINT FOREIGN KEY (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP) +REFERENCES qtriggers; + + +ALTER TABLE qsimple_triggers +ADD CONSTRAINT FOREIGN KEY (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP) +REFERENCES qtriggers; + +ALTER TABLE qsimprop_triggers +ADD CONSTRAINT FOREIGN KEY (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP) +REFERENCES qtriggers; + +ALTER TABLE qtriggers +ADD CONSTRAINT FOREIGN KEY (SCHED_NAME,JOB_NAME, JOB_GROUP) +REFERENCES qjob_details; + diff --git a/spring-boot-demo-task-quartz/init/dbTables/tables_mysql.sql b/spring-boot-demo-task-quartz/init/dbTables/tables_mysql.sql new file mode 100644 index 0000000..ba85d2c --- /dev/null +++ b/spring-boot-demo-task-quartz/init/dbTables/tables_mysql.sql @@ -0,0 +1,168 @@ +# +# Quartz seems to work best with the driver mm.mysql-2.0.7-bin.jar +# +# PLEASE consider using mysql with innodb tables to avoid locking issues +# +# In your Quartz properties file, you'll need to set +# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate +# + +DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS; +DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE; +DROP TABLE IF EXISTS QRTZ_LOCKS; +DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_JOB_DETAILS; +DROP TABLE IF EXISTS QRTZ_CALENDARS; + + +CREATE TABLE QRTZ_JOB_DETAILS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + JOB_NAME VARCHAR(200) NOT NULL, + JOB_GROUP VARCHAR(200) NOT NULL, + DESCRIPTION VARCHAR(250) NULL, + JOB_CLASS_NAME VARCHAR(250) NOT NULL, + IS_DURABLE VARCHAR(1) NOT NULL, + IS_NONCONCURRENT VARCHAR(1) NOT NULL, + IS_UPDATE_DATA VARCHAR(1) NOT NULL, + REQUESTS_RECOVERY VARCHAR(1) NOT NULL, + JOB_DATA BLOB NULL, + PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) +); + +CREATE TABLE QRTZ_TRIGGERS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + JOB_NAME VARCHAR(200) NOT NULL, + JOB_GROUP VARCHAR(200) NOT NULL, + DESCRIPTION VARCHAR(250) NULL, + NEXT_FIRE_TIME BIGINT(13) NULL, + PREV_FIRE_TIME BIGINT(13) NULL, + PRIORITY INTEGER NULL, + TRIGGER_STATE VARCHAR(16) NOT NULL, + TRIGGER_TYPE VARCHAR(8) NOT NULL, + START_TIME BIGINT(13) NOT NULL, + END_TIME BIGINT(13) NULL, + CALENDAR_NAME VARCHAR(200) NULL, + MISFIRE_INSTR SMALLINT(2) NULL, + JOB_DATA BLOB NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) + REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP) +); + +CREATE TABLE QRTZ_SIMPLE_TRIGGERS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + REPEAT_COUNT BIGINT(7) NOT NULL, + REPEAT_INTERVAL BIGINT(12) NOT NULL, + TIMES_TRIGGERED BIGINT(10) NOT NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_CRON_TRIGGERS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + CRON_EXPRESSION VARCHAR(200) NOT NULL, + TIME_ZONE_ID VARCHAR(80), + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_SIMPROP_TRIGGERS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + STR_PROP_1 VARCHAR(512) NULL, + STR_PROP_2 VARCHAR(512) NULL, + STR_PROP_3 VARCHAR(512) NULL, + INT_PROP_1 INT NULL, + INT_PROP_2 INT NULL, + LONG_PROP_1 BIGINT NULL, + LONG_PROP_2 BIGINT NULL, + DEC_PROP_1 NUMERIC(13,4) NULL, + DEC_PROP_2 NUMERIC(13,4) NULL, + BOOL_PROP_1 VARCHAR(1) NULL, + BOOL_PROP_2 VARCHAR(1) NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_BLOB_TRIGGERS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + BLOB_DATA BLOB NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_CALENDARS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + CALENDAR_NAME VARCHAR(200) NOT NULL, + CALENDAR BLOB NOT NULL, + PRIMARY KEY (SCHED_NAME,CALENDAR_NAME) +); + +CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_FIRED_TRIGGERS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + ENTRY_ID VARCHAR(95) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + INSTANCE_NAME VARCHAR(200) NOT NULL, + FIRED_TIME BIGINT(13) NOT NULL, + SCHED_TIME BIGINT(13) NOT NULL, + PRIORITY INTEGER NOT NULL, + STATE VARCHAR(16) NOT NULL, + JOB_NAME VARCHAR(200) NULL, + JOB_GROUP VARCHAR(200) NULL, + IS_NONCONCURRENT VARCHAR(1) NULL, + REQUESTS_RECOVERY VARCHAR(1) NULL, + PRIMARY KEY (SCHED_NAME,ENTRY_ID) +); + +CREATE TABLE QRTZ_SCHEDULER_STATE + ( + SCHED_NAME VARCHAR(120) NOT NULL, + INSTANCE_NAME VARCHAR(200) NOT NULL, + LAST_CHECKIN_TIME BIGINT(13) NOT NULL, + CHECKIN_INTERVAL BIGINT(13) NOT NULL, + PRIMARY KEY (SCHED_NAME,INSTANCE_NAME) +); + +CREATE TABLE QRTZ_LOCKS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + LOCK_NAME VARCHAR(40) NOT NULL, + PRIMARY KEY (SCHED_NAME,LOCK_NAME) +); + + +commit; diff --git a/spring-boot-demo-task-quartz/init/dbTables/tables_mysql_innodb.sql b/spring-boot-demo-task-quartz/init/dbTables/tables_mysql_innodb.sql new file mode 100644 index 0000000..c0696d9 --- /dev/null +++ b/spring-boot-demo-task-quartz/init/dbTables/tables_mysql_innodb.sql @@ -0,0 +1,179 @@ +# +# In your Quartz properties file, you'll need to set +# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate +# +# +# By: Ron Cordell - roncordell +# 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. + +DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS; +DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE; +DROP TABLE IF EXISTS QRTZ_LOCKS; +DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_JOB_DETAILS; +DROP TABLE IF EXISTS QRTZ_CALENDARS; + +CREATE TABLE QRTZ_JOB_DETAILS( +SCHED_NAME VARCHAR(120) NOT NULL, +JOB_NAME VARCHAR(200) NOT NULL, +JOB_GROUP VARCHAR(200) NOT NULL, +DESCRIPTION VARCHAR(250) NULL, +JOB_CLASS_NAME VARCHAR(250) NOT NULL, +IS_DURABLE VARCHAR(1) NOT NULL, +IS_NONCONCURRENT VARCHAR(1) NOT NULL, +IS_UPDATE_DATA VARCHAR(1) NOT NULL, +REQUESTS_RECOVERY VARCHAR(1) NOT NULL, +JOB_DATA BLOB NULL, +PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_TRIGGERS ( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_NAME VARCHAR(200) NOT NULL, +TRIGGER_GROUP VARCHAR(200) NOT NULL, +JOB_NAME VARCHAR(200) NOT NULL, +JOB_GROUP VARCHAR(200) NOT NULL, +DESCRIPTION VARCHAR(250) NULL, +NEXT_FIRE_TIME BIGINT(13) NULL, +PREV_FIRE_TIME BIGINT(13) NULL, +PRIORITY INTEGER NULL, +TRIGGER_STATE VARCHAR(16) NOT NULL, +TRIGGER_TYPE VARCHAR(8) NOT NULL, +START_TIME BIGINT(13) NOT NULL, +END_TIME BIGINT(13) NULL, +CALENDAR_NAME VARCHAR(200) NULL, +MISFIRE_INSTR SMALLINT(2) NULL, +JOB_DATA BLOB NULL, +PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), +FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) +REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_SIMPLE_TRIGGERS ( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_NAME VARCHAR(200) NOT NULL, +TRIGGER_GROUP VARCHAR(200) NOT NULL, +REPEAT_COUNT BIGINT(7) NOT NULL, +REPEAT_INTERVAL BIGINT(12) NOT NULL, +TIMES_TRIGGERED BIGINT(10) NOT NULL, +PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), +FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_CRON_TRIGGERS ( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_NAME VARCHAR(200) NOT NULL, +TRIGGER_GROUP VARCHAR(200) NOT NULL, +CRON_EXPRESSION VARCHAR(120) NOT NULL, +TIME_ZONE_ID VARCHAR(80), +PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), +FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_SIMPROP_TRIGGERS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + STR_PROP_1 VARCHAR(512) NULL, + STR_PROP_2 VARCHAR(512) NULL, + STR_PROP_3 VARCHAR(512) NULL, + INT_PROP_1 INT NULL, + INT_PROP_2 INT NULL, + LONG_PROP_1 BIGINT NULL, + LONG_PROP_2 BIGINT NULL, + DEC_PROP_1 NUMERIC(13,4) NULL, + DEC_PROP_2 NUMERIC(13,4) NULL, + BOOL_PROP_1 VARCHAR(1) NULL, + BOOL_PROP_2 VARCHAR(1) NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_BLOB_TRIGGERS ( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_NAME VARCHAR(200) NOT NULL, +TRIGGER_GROUP VARCHAR(200) NOT NULL, +BLOB_DATA BLOB NULL, +PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), +INDEX (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP), +FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_CALENDARS ( +SCHED_NAME VARCHAR(120) NOT NULL, +CALENDAR_NAME VARCHAR(200) NOT NULL, +CALENDAR BLOB NOT NULL, +PRIMARY KEY (SCHED_NAME,CALENDAR_NAME)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS ( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_GROUP VARCHAR(200) NOT NULL, +PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_FIRED_TRIGGERS ( +SCHED_NAME VARCHAR(120) NOT NULL, +ENTRY_ID VARCHAR(95) NOT NULL, +TRIGGER_NAME VARCHAR(200) NOT NULL, +TRIGGER_GROUP VARCHAR(200) NOT NULL, +INSTANCE_NAME VARCHAR(200) NOT NULL, +FIRED_TIME BIGINT(13) NOT NULL, +SCHED_TIME BIGINT(13) NOT NULL, +PRIORITY INTEGER NOT NULL, +STATE VARCHAR(16) NOT NULL, +JOB_NAME VARCHAR(200) NULL, +JOB_GROUP VARCHAR(200) NULL, +IS_NONCONCURRENT VARCHAR(1) NULL, +REQUESTS_RECOVERY VARCHAR(1) NULL, +PRIMARY KEY (SCHED_NAME,ENTRY_ID)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_SCHEDULER_STATE ( +SCHED_NAME VARCHAR(120) NOT NULL, +INSTANCE_NAME VARCHAR(200) NOT NULL, +LAST_CHECKIN_TIME BIGINT(13) NOT NULL, +CHECKIN_INTERVAL BIGINT(13) NOT NULL, +PRIMARY KEY (SCHED_NAME,INSTANCE_NAME)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_LOCKS ( +SCHED_NAME VARCHAR(120) NOT NULL, +LOCK_NAME VARCHAR(40) NOT NULL, +PRIMARY KEY (SCHED_NAME,LOCK_NAME)) +ENGINE=InnoDB; + +CREATE INDEX IDX_QRTZ_J_REQ_RECOVERY ON QRTZ_JOB_DETAILS(SCHED_NAME,REQUESTS_RECOVERY); +CREATE INDEX IDX_QRTZ_J_GRP ON QRTZ_JOB_DETAILS(SCHED_NAME,JOB_GROUP); + +CREATE INDEX IDX_QRTZ_T_J ON QRTZ_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP); +CREATE INDEX IDX_QRTZ_T_JG ON QRTZ_TRIGGERS(SCHED_NAME,JOB_GROUP); +CREATE INDEX IDX_QRTZ_T_C ON QRTZ_TRIGGERS(SCHED_NAME,CALENDAR_NAME); +CREATE INDEX IDX_QRTZ_T_G ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP); +CREATE INDEX IDX_QRTZ_T_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_N_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_N_G_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_NEXT_FIRE_TIME ON QRTZ_TRIGGERS(SCHED_NAME,NEXT_FIRE_TIME); +CREATE INDEX IDX_QRTZ_T_NFT_ST ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME); +CREATE INDEX IDX_QRTZ_T_NFT_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME); +CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE_GRP ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE); + +CREATE INDEX IDX_QRTZ_FT_TRIG_INST_NAME ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME); +CREATE INDEX IDX_QRTZ_FT_INST_JOB_REQ_RCVRY ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY); +CREATE INDEX IDX_QRTZ_FT_J_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP); +CREATE INDEX IDX_QRTZ_FT_JG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_GROUP); +CREATE INDEX IDX_QRTZ_FT_T_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP); +CREATE INDEX IDX_QRTZ_FT_TG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_GROUP); + +commit; diff --git a/spring-boot-demo-task-quartz/init/dbTables/tables_oracle.sql b/spring-boot-demo-task-quartz/init/dbTables/tables_oracle.sql new file mode 100644 index 0000000..0f23e5a --- /dev/null +++ b/spring-boot-demo-task-quartz/init/dbTables/tables_oracle.sql @@ -0,0 +1,193 @@ +-- +-- A hint submitted by a user: Oracle DB MUST be created as "shared" and the +-- job_queue_processes parameter must be greater than 2 +-- However, these settings are pretty much standard after any +-- Oracle install, so most users need not worry about this. +-- +-- Many other users (including the primary author of Quartz) have had success +-- runing in dedicated mode, so only consider the above as a hint ;-) +-- + +delete from qrtz_fired_triggers; +delete from qrtz_simple_triggers; +delete from qrtz_simprop_triggers; +delete from qrtz_cron_triggers; +delete from qrtz_blob_triggers; +delete from qrtz_triggers; +delete from qrtz_job_details; +delete from qrtz_calendars; +delete from qrtz_paused_trigger_grps; +delete from qrtz_locks; +delete from qrtz_scheduler_state; + +drop table qrtz_calendars; +drop table qrtz_fired_triggers; +drop table qrtz_blob_triggers; +drop table qrtz_cron_triggers; +drop table qrtz_simple_triggers; +drop table qrtz_simprop_triggers; +drop table qrtz_triggers; +drop table qrtz_job_details; +drop table qrtz_paused_trigger_grps; +drop table qrtz_locks; +drop table qrtz_scheduler_state; + + +CREATE TABLE qrtz_job_details + ( + SCHED_NAME VARCHAR2(120) NOT NULL, + JOB_NAME VARCHAR2(200) NOT NULL, + JOB_GROUP VARCHAR2(200) NOT NULL, + DESCRIPTION VARCHAR2(250) NULL, + JOB_CLASS_NAME VARCHAR2(250) NOT NULL, + IS_DURABLE VARCHAR2(1) NOT NULL, + IS_NONCONCURRENT VARCHAR2(1) NOT NULL, + IS_UPDATE_DATA VARCHAR2(1) NOT NULL, + REQUESTS_RECOVERY VARCHAR2(1) NOT NULL, + JOB_DATA BLOB NULL, + CONSTRAINT QRTZ_JOB_DETAILS_PK PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) +); +CREATE TABLE qrtz_triggers + ( + SCHED_NAME VARCHAR2(120) NOT NULL, + TRIGGER_NAME VARCHAR2(200) NOT NULL, + TRIGGER_GROUP VARCHAR2(200) NOT NULL, + JOB_NAME VARCHAR2(200) NOT NULL, + JOB_GROUP VARCHAR2(200) NOT NULL, + DESCRIPTION VARCHAR2(250) NULL, + NEXT_FIRE_TIME NUMBER(13) NULL, + PREV_FIRE_TIME NUMBER(13) NULL, + PRIORITY NUMBER(13) NULL, + TRIGGER_STATE VARCHAR2(16) NOT NULL, + TRIGGER_TYPE VARCHAR2(8) NOT NULL, + START_TIME NUMBER(13) NOT NULL, + END_TIME NUMBER(13) NULL, + CALENDAR_NAME VARCHAR2(200) NULL, + MISFIRE_INSTR NUMBER(2) NULL, + JOB_DATA BLOB NULL, + CONSTRAINT QRTZ_TRIGGERS_PK PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + CONSTRAINT QRTZ_TRIGGER_TO_JOBS_FK FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) + REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP) +); +CREATE TABLE qrtz_simple_triggers + ( + SCHED_NAME VARCHAR2(120) NOT NULL, + TRIGGER_NAME VARCHAR2(200) NOT NULL, + TRIGGER_GROUP VARCHAR2(200) NOT NULL, + REPEAT_COUNT NUMBER(7) NOT NULL, + REPEAT_INTERVAL NUMBER(12) NOT NULL, + TIMES_TRIGGERED NUMBER(10) NOT NULL, + CONSTRAINT QRTZ_SIMPLE_TRIG_PK PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + CONSTRAINT QRTZ_SIMPLE_TRIG_TO_TRIG_FK FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); +CREATE TABLE qrtz_cron_triggers + ( + SCHED_NAME VARCHAR2(120) NOT NULL, + TRIGGER_NAME VARCHAR2(200) NOT NULL, + TRIGGER_GROUP VARCHAR2(200) NOT NULL, + CRON_EXPRESSION VARCHAR2(120) NOT NULL, + TIME_ZONE_ID VARCHAR2(80), + CONSTRAINT QRTZ_CRON_TRIG_PK PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + CONSTRAINT QRTZ_CRON_TRIG_TO_TRIG_FK FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); +CREATE TABLE qrtz_simprop_triggers + ( + SCHED_NAME VARCHAR2(120) NOT NULL, + TRIGGER_NAME VARCHAR2(200) NOT NULL, + TRIGGER_GROUP VARCHAR2(200) NOT NULL, + STR_PROP_1 VARCHAR2(512) NULL, + STR_PROP_2 VARCHAR2(512) NULL, + STR_PROP_3 VARCHAR2(512) NULL, + INT_PROP_1 NUMBER(10) NULL, + INT_PROP_2 NUMBER(10) NULL, + LONG_PROP_1 NUMBER(13) NULL, + LONG_PROP_2 NUMBER(13) NULL, + DEC_PROP_1 NUMERIC(13,4) NULL, + DEC_PROP_2 NUMERIC(13,4) NULL, + BOOL_PROP_1 VARCHAR2(1) NULL, + BOOL_PROP_2 VARCHAR2(1) NULL, + CONSTRAINT QRTZ_SIMPROP_TRIG_PK PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + CONSTRAINT QRTZ_SIMPROP_TRIG_TO_TRIG_FK FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); +CREATE TABLE qrtz_blob_triggers + ( + SCHED_NAME VARCHAR2(120) NOT NULL, + TRIGGER_NAME VARCHAR2(200) NOT NULL, + TRIGGER_GROUP VARCHAR2(200) NOT NULL, + BLOB_DATA BLOB NULL, + CONSTRAINT QRTZ_BLOB_TRIG_PK PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + CONSTRAINT QRTZ_BLOB_TRIG_TO_TRIG_FK FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); +CREATE TABLE qrtz_calendars + ( + SCHED_NAME VARCHAR2(120) NOT NULL, + CALENDAR_NAME VARCHAR2(200) NOT NULL, + CALENDAR BLOB NOT NULL, + CONSTRAINT QRTZ_CALENDARS_PK PRIMARY KEY (SCHED_NAME,CALENDAR_NAME) +); +CREATE TABLE qrtz_paused_trigger_grps + ( + SCHED_NAME VARCHAR2(120) NOT NULL, + TRIGGER_GROUP VARCHAR2(200) NOT NULL, + CONSTRAINT QRTZ_PAUSED_TRIG_GRPS_PK PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP) +); +CREATE TABLE qrtz_fired_triggers + ( + SCHED_NAME VARCHAR2(120) NOT NULL, + ENTRY_ID VARCHAR2(95) NOT NULL, + TRIGGER_NAME VARCHAR2(200) NOT NULL, + TRIGGER_GROUP VARCHAR2(200) NOT NULL, + INSTANCE_NAME VARCHAR2(200) NOT NULL, + FIRED_TIME NUMBER(13) NOT NULL, + SCHED_TIME NUMBER(13) NOT NULL, + PRIORITY NUMBER(13) NOT NULL, + STATE VARCHAR2(16) NOT NULL, + JOB_NAME VARCHAR2(200) NULL, + JOB_GROUP VARCHAR2(200) NULL, + IS_NONCONCURRENT VARCHAR2(1) NULL, + REQUESTS_RECOVERY VARCHAR2(1) NULL, + CONSTRAINT QRTZ_FIRED_TRIGGER_PK PRIMARY KEY (SCHED_NAME,ENTRY_ID) +); +CREATE TABLE qrtz_scheduler_state + ( + SCHED_NAME VARCHAR2(120) NOT NULL, + INSTANCE_NAME VARCHAR2(200) NOT NULL, + LAST_CHECKIN_TIME NUMBER(13) NOT NULL, + CHECKIN_INTERVAL NUMBER(13) NOT NULL, + CONSTRAINT QRTZ_SCHEDULER_STATE_PK PRIMARY KEY (SCHED_NAME,INSTANCE_NAME) +); +CREATE TABLE qrtz_locks + ( + SCHED_NAME VARCHAR2(120) NOT NULL, + LOCK_NAME VARCHAR2(40) NOT NULL, + CONSTRAINT QRTZ_LOCKS_PK PRIMARY KEY (SCHED_NAME,LOCK_NAME) +); + +create index idx_qrtz_j_req_recovery on qrtz_job_details(SCHED_NAME,REQUESTS_RECOVERY); +create index idx_qrtz_j_grp on qrtz_job_details(SCHED_NAME,JOB_GROUP); + +create index idx_qrtz_t_j on qrtz_triggers(SCHED_NAME,JOB_NAME,JOB_GROUP); +create index idx_qrtz_t_jg on qrtz_triggers(SCHED_NAME,JOB_GROUP); +create index idx_qrtz_t_c on qrtz_triggers(SCHED_NAME,CALENDAR_NAME); +create index idx_qrtz_t_g on qrtz_triggers(SCHED_NAME,TRIGGER_GROUP); +create index idx_qrtz_t_state on qrtz_triggers(SCHED_NAME,TRIGGER_STATE); +create index idx_qrtz_t_n_state on qrtz_triggers(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE); +create index idx_qrtz_t_n_g_state on qrtz_triggers(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE); +create index idx_qrtz_t_next_fire_time on qrtz_triggers(SCHED_NAME,NEXT_FIRE_TIME); +create index idx_qrtz_t_nft_st on qrtz_triggers(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME); +create index idx_qrtz_t_nft_misfire on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME); +create index idx_qrtz_t_nft_st_misfire on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE); +create index idx_qrtz_t_nft_st_misfire_grp on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE); + +create index idx_qrtz_ft_trig_inst_name on qrtz_fired_triggers(SCHED_NAME,INSTANCE_NAME); +create index idx_qrtz_ft_inst_job_req_rcvry on qrtz_fired_triggers(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY); +create index idx_qrtz_ft_j_g on qrtz_fired_triggers(SCHED_NAME,JOB_NAME,JOB_GROUP); +create index idx_qrtz_ft_jg on qrtz_fired_triggers(SCHED_NAME,JOB_GROUP); +create index idx_qrtz_ft_t_g on qrtz_fired_triggers(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP); +create index idx_qrtz_ft_tg on qrtz_fired_triggers(SCHED_NAME,TRIGGER_GROUP); + + diff --git a/spring-boot-demo-task-quartz/init/dbTables/tables_pointbase.sql b/spring-boot-demo-task-quartz/init/dbTables/tables_pointbase.sql new file mode 100644 index 0000000..debc93f --- /dev/null +++ b/spring-boot-demo-task-quartz/init/dbTables/tables_pointbase.sql @@ -0,0 +1,180 @@ +# +# Thanks to Gregg Freeman +# +# +# ...you may want to change defined the size of the "blob" columns before +# creating the tables (particularly for the qrtz_job_details.job_data column), +# if you will be storing large amounts of data in them +# +# +delete from qrtz_fired_triggers; +delete from qrtz_simple_triggers; +delete from qrtz_simprop_triggers; +delete from qrtz_cron_triggers; +delete from qrtz_blob_triggers; +delete from qrtz_triggers; +delete from qrtz_job_details; +delete from qrtz_calendars; +delete from qrtz_paused_trigger_grps; +delete from qrtz_locks; +delete from qrtz_scheduler_state; + +drop table qrtz_calendars; +drop table qrtz_fired_triggers; +drop table qrtz_blob_triggers; +drop table qrtz_cron_triggers; +drop table qrtz_simple_triggers; +drop table qrtz_simprop_triggers; +drop table qrtz_triggers; +drop table qrtz_job_details; +drop table qrtz_paused_trigger_grps; +drop table qrtz_locks; +drop table qrtz_scheduler_state; + + +CREATE TABLE qrtz_job_details + ( + SCHED_NAME VARCHAR(120) NOT NULL, + JOB_NAME VARCHAR2(80) NOT NULL, + JOB_GROUP VARCHAR2(80) NOT NULL, + DESCRIPTION VARCHAR2(120) NULL, + JOB_CLASS_NAME VARCHAR2(128) NOT NULL, + IS_DURABLE BOOLEAN NOT NULL, + IS_NONCONCURRENT BOOLEAN NOT NULL, + IS_UPDATE_DATA BOOLEAN NOT NULL, + REQUESTS_RECOVERY BOOLEAN NOT NULL, + JOB_DATA BLOB(4K) NULL, + PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) +); + +CREATE TABLE qrtz_triggers + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR2(80) NOT NULL, + TRIGGER_GROUP VARCHAR2(80) NOT NULL, + JOB_NAME VARCHAR2(80) NOT NULL, + JOB_GROUP VARCHAR2(80) NOT NULL, + DESCRIPTION VARCHAR2(120) NULL, + NEXT_FIRE_TIME NUMBER(13) NULL, + PREV_FIRE_TIME NUMBER(13) NULL, + PRIORITY NUMBER(13) NULL, + TRIGGER_STATE VARCHAR2(16) NOT NULL, + TRIGGER_TYPE VARCHAR2(8) NOT NULL, + START_TIME NUMBER(13) NOT NULL, + END_TIME NUMBER(13) NULL, + CALENDAR_NAME VARCHAR2(80) NULL, + MISFIRE_INSTR NUMBER(2) NULL, + JOB_DATA BLOB(4K) NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) + REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP) +); + +CREATE TABLE qrtz_simple_triggers + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR2(80) NOT NULL, + TRIGGER_GROUP VARCHAR2(80) NOT NULL, + REPEAT_COUNT NUMBER(7) NOT NULL, + REPEAT_INTERVAL NUMBER(12) NOT NULL, + TIMES_TRIGGERED NUMBER(10) NOT NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + + +CREATE TABLE qrtz_simprop_triggers + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + STR_PROP_1 VARCHAR(512) NULL, + STR_PROP_2 VARCHAR(512) NULL, + STR_PROP_3 VARCHAR(512) NULL, + INT_PROP_1 NUMBER(10) NULL, + INT_PROP_2 NUMBER(10) NULL, + LONG_PROP_1 NUMBER(13) NULL, + LONG_PROP_2 NUMBER(13) NULL, + DEC_PROP_1 NUMERIC(13,4) NULL, + DEC_PROP_2 NUMERIC(13,4) NULL, + BOOL_PROP_1 BOOLEAN NULL, + BOOL_PROP_2 BOOLEAN NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE qrtz_cron_triggers + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR2(80) NOT NULL, + TRIGGER_GROUP VARCHAR2(80) NOT NULL, + CRON_EXPRESSION VARCHAR2(120) NOT NULL, + TIME_ZONE_ID VARCHAR2(80), + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE qrtz_blob_triggers + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR2(80) NOT NULL, + TRIGGER_GROUP VARCHAR2(80) NOT NULL, + BLOB_DATA BLOB(4K) NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE qrtz_calendars + ( + SCHED_NAME VARCHAR(120) NOT NULL, + CALENDAR_NAME VARCHAR2(80) NOT NULL, + CALENDAR BLOB(4K) NOT NULL, + PRIMARY KEY (SCHED_NAME,CALENDAR_NAME) +); + +CREATE TABLE qrtz_paused_trigger_grps + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_GROUP VARCHAR2(80) NOT NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP) +); + +CREATE TABLE qrtz_fired_triggers + ( + SCHED_NAME VARCHAR(120) NOT NULL, + ENTRY_ID VARCHAR2(95) NOT NULL, + TRIGGER_NAME VARCHAR2(80) NOT NULL, + TRIGGER_GROUP VARCHAR2(80) NOT NULL, + INSTANCE_NAME VARCHAR2(80) NOT NULL, + FIRED_TIME NUMBER(13) NOT NULL, + SCHED_TIME NUMBER(13) NOT NULL, + PRIORITY NUMBER(13) NOT NULL, + STATE VARCHAR2(16) NOT NULL, + JOB_NAME VARCHAR2(80) NULL, + JOB_GROUP VARCHAR2(80) NULL, + IS_NONCONCURRENT BOOLEAN NULL, + REQUESTS_RECOVERY BOOLEAN NULL, + PRIMARY KEY (SCHED_NAME,ENTRY_ID) +); + +CREATE TABLE qrtz_scheduler_state + ( + SCHED_NAME VARCHAR(120) NOT NULL, + INSTANCE_NAME VARCHAR2(80) NOT NULL, + LAST_CHECKIN_TIME NUMBER(13) NOT NULL, + CHECKIN_INTERVAL NUMBER(13) NOT NULL, + PRIMARY KEY (SCHED_NAME,INSTANCE_NAME) +); + +CREATE TABLE qrtz_locks + ( + SCHED_NAME VARCHAR(120) NOT NULL, + LOCK_NAME VARCHAR2(40) NOT NULL, + PRIMARY KEY (SCHED_NAME,LOCK_NAME) +); + +commit; diff --git a/spring-boot-demo-task-quartz/init/dbTables/tables_postgres.sql b/spring-boot-demo-task-quartz/init/dbTables/tables_postgres.sql new file mode 100644 index 0000000..512a9b1 --- /dev/null +++ b/spring-boot-demo-task-quartz/init/dbTables/tables_postgres.sql @@ -0,0 +1,187 @@ +-- Thanks to Patrick Lightbody for submitting this... +-- +-- In your Quartz properties file, you'll need to set +-- org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.PostgreSQLDelegate + +drop table qrtz_fired_triggers; +DROP TABLE QRTZ_PAUSED_TRIGGER_GRPS; +DROP TABLE QRTZ_SCHEDULER_STATE; +DROP TABLE QRTZ_LOCKS; +drop table qrtz_simple_triggers; +drop table qrtz_cron_triggers; +drop table qrtz_simprop_triggers; +DROP TABLE QRTZ_BLOB_TRIGGERS; +drop table qrtz_triggers; +drop table qrtz_job_details; +drop table qrtz_calendars; + +CREATE TABLE qrtz_job_details + ( + SCHED_NAME VARCHAR(120) NOT NULL, + JOB_NAME VARCHAR(200) NOT NULL, + JOB_GROUP VARCHAR(200) NOT NULL, + DESCRIPTION VARCHAR(250) NULL, + JOB_CLASS_NAME VARCHAR(250) NOT NULL, + IS_DURABLE BOOL NOT NULL, + IS_NONCONCURRENT BOOL NOT NULL, + IS_UPDATE_DATA BOOL NOT NULL, + REQUESTS_RECOVERY BOOL NOT NULL, + JOB_DATA BYTEA NULL, + PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) +); + +CREATE TABLE qrtz_triggers + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + JOB_NAME VARCHAR(200) NOT NULL, + JOB_GROUP VARCHAR(200) NOT NULL, + DESCRIPTION VARCHAR(250) NULL, + NEXT_FIRE_TIME BIGINT NULL, + PREV_FIRE_TIME BIGINT NULL, + PRIORITY INTEGER NULL, + TRIGGER_STATE VARCHAR(16) NOT NULL, + TRIGGER_TYPE VARCHAR(8) NOT NULL, + START_TIME BIGINT NOT NULL, + END_TIME BIGINT NULL, + CALENDAR_NAME VARCHAR(200) NULL, + MISFIRE_INSTR SMALLINT NULL, + JOB_DATA BYTEA NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) + REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP) +); + +CREATE TABLE qrtz_simple_triggers + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + REPEAT_COUNT BIGINT NOT NULL, + REPEAT_INTERVAL BIGINT NOT NULL, + TIMES_TRIGGERED BIGINT NOT NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE qrtz_cron_triggers + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + CRON_EXPRESSION VARCHAR(120) NOT NULL, + TIME_ZONE_ID VARCHAR(80), + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE qrtz_simprop_triggers + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + STR_PROP_1 VARCHAR(512) NULL, + STR_PROP_2 VARCHAR(512) NULL, + STR_PROP_3 VARCHAR(512) NULL, + INT_PROP_1 INT NULL, + INT_PROP_2 INT NULL, + LONG_PROP_1 BIGINT NULL, + LONG_PROP_2 BIGINT NULL, + DEC_PROP_1 NUMERIC(13,4) NULL, + DEC_PROP_2 NUMERIC(13,4) NULL, + BOOL_PROP_1 BOOL NULL, + BOOL_PROP_2 BOOL NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE qrtz_blob_triggers + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + BLOB_DATA BYTEA NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE qrtz_calendars + ( + SCHED_NAME VARCHAR(120) NOT NULL, + CALENDAR_NAME VARCHAR(200) NOT NULL, + CALENDAR BYTEA NOT NULL, + PRIMARY KEY (SCHED_NAME,CALENDAR_NAME) +); + + +CREATE TABLE qrtz_paused_trigger_grps + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP) +); + +CREATE TABLE qrtz_fired_triggers + ( + SCHED_NAME VARCHAR(120) NOT NULL, + ENTRY_ID VARCHAR(95) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + INSTANCE_NAME VARCHAR(200) NOT NULL, + FIRED_TIME BIGINT NOT NULL, + SCHED_TIME BIGINT NOT NULL, + PRIORITY INTEGER NOT NULL, + STATE VARCHAR(16) NOT NULL, + JOB_NAME VARCHAR(200) NULL, + JOB_GROUP VARCHAR(200) NULL, + IS_NONCONCURRENT BOOL NULL, + REQUESTS_RECOVERY BOOL NULL, + PRIMARY KEY (SCHED_NAME,ENTRY_ID) +); + +CREATE TABLE qrtz_scheduler_state + ( + SCHED_NAME VARCHAR(120) NOT NULL, + INSTANCE_NAME VARCHAR(200) NOT NULL, + LAST_CHECKIN_TIME BIGINT NOT NULL, + CHECKIN_INTERVAL BIGINT NOT NULL, + PRIMARY KEY (SCHED_NAME,INSTANCE_NAME) +); + +CREATE TABLE qrtz_locks + ( + SCHED_NAME VARCHAR(120) NOT NULL, + LOCK_NAME VARCHAR(40) NOT NULL, + PRIMARY KEY (SCHED_NAME,LOCK_NAME) +); + +create index idx_qrtz_j_req_recovery on qrtz_job_details(SCHED_NAME,REQUESTS_RECOVERY); +create index idx_qrtz_j_grp on qrtz_job_details(SCHED_NAME,JOB_GROUP); + +create index idx_qrtz_t_j on qrtz_triggers(SCHED_NAME,JOB_NAME,JOB_GROUP); +create index idx_qrtz_t_jg on qrtz_triggers(SCHED_NAME,JOB_GROUP); +create index idx_qrtz_t_c on qrtz_triggers(SCHED_NAME,CALENDAR_NAME); +create index idx_qrtz_t_g on qrtz_triggers(SCHED_NAME,TRIGGER_GROUP); +create index idx_qrtz_t_state on qrtz_triggers(SCHED_NAME,TRIGGER_STATE); +create index idx_qrtz_t_n_state on qrtz_triggers(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE); +create index idx_qrtz_t_n_g_state on qrtz_triggers(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE); +create index idx_qrtz_t_next_fire_time on qrtz_triggers(SCHED_NAME,NEXT_FIRE_TIME); +create index idx_qrtz_t_nft_st on qrtz_triggers(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME); +create index idx_qrtz_t_nft_misfire on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME); +create index idx_qrtz_t_nft_st_misfire on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE); +create index idx_qrtz_t_nft_st_misfire_grp on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE); + +create index idx_qrtz_ft_trig_inst_name on qrtz_fired_triggers(SCHED_NAME,INSTANCE_NAME); +create index idx_qrtz_ft_inst_job_req_rcvry on qrtz_fired_triggers(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY); +create index idx_qrtz_ft_j_g on qrtz_fired_triggers(SCHED_NAME,JOB_NAME,JOB_GROUP); +create index idx_qrtz_ft_jg on qrtz_fired_triggers(SCHED_NAME,JOB_GROUP); +create index idx_qrtz_ft_t_g on qrtz_fired_triggers(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP); +create index idx_qrtz_ft_tg on qrtz_fired_triggers(SCHED_NAME,TRIGGER_GROUP); + + +commit; diff --git a/spring-boot-demo-task-quartz/init/dbTables/tables_sapdb.sql b/spring-boot-demo-task-quartz/init/dbTables/tables_sapdb.sql new file mode 100644 index 0000000..16a404f --- /dev/null +++ b/spring-boot-demo-task-quartz/init/dbTables/tables_sapdb.sql @@ -0,0 +1,151 @@ +# +# Thanks to Andrew Perepelytsya for submitting this file. +# +# In your Quartz properties file, you'll need to set +# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate +# + +CREATE TABLE QRTZ_JOB_DETAILS +( + SCHED_NAME VARCHAR(120) NOT NULL, + JOB_NAME VARCHAR(200) NOT NULL, + JOB_GROUP VARCHAR(200) NOT NULL, + DESCRIPTION VARCHAR(250) NULL, + JOB_CLASS_NAME VARCHAR(128) NOT NULL, + IS_DURABLE VARCHAR(1) NOT NULL, + IS_NONCONCURRENT VARCHAR(1) NOT NULL, + IS_UPDATE_DATA VARCHAR(1) NOT NULL, + REQUESTS_RECOVERY VARCHAR(1) NOT NULL, + JOB_DATA LONG BYTE NULL, + PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) +); + +CREATE TABLE QRTZ_TRIGGERS +( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + JOB_NAME VARCHAR(200) NOT NULL, + JOB_GROUP VARCHAR(200) NOT NULL, + DESCRIPTION VARCHAR(250) NULL, + NEXT_FIRE_TIME FIXED(13) NULL, + PREV_FIRE_TIME FIXED(13) NULL, + PRIORITY FIXED(13) NULL, + TRIGGER_STATE VARCHAR(16) NOT NULL, + TRIGGER_TYPE VARCHAR(8) NOT NULL, + START_TIME FIXED(13) NOT NULL, + END_TIME FIXED(13) NULL, + CALENDAR_NAME VARCHAR(200) NULL, + MISFIRE_INSTR FIXED(2) NULL, + JOB_DATA LONG BYTE NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP) +); + +CREATE TABLE QRTZ_SIMPLE_TRIGGERS +( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + REPEAT_COUNT FIXED(7) NOT NULL, + REPEAT_INTERVAL FIXED(12) NOT NULL, + TIMES_TRIGGERED FIXED(10) NOT NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_SIMPROP_TRIGGERS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + STR_PROP_1 VARCHAR(512) NULL, + STR_PROP_2 VARCHAR(512) NULL, + STR_PROP_3 VARCHAR(512) NULL, + INT_PROP_1 FIXED(10) NULL, + INT_PROP_2 FIXED(10) NULL, + LONG_PROP_1 FIXED(13) NULL, + LONG_PROP_2 FIXED(13) NULL, + DEC_PROP_1 NUMERIC(13,4) NULL, + DEC_PROP_2 NUMERIC(13,4) NULL, + BOOL_PROP_1 VARCHAR(1) NULL, + BOOL_PROP_2 VARCHAR(1) NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_CRON_TRIGGERS +( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + CRON_EXPRESSION VARCHAR(120) NOT NULL, + TIME_ZONE_ID VARCHAR(80), + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_BLOB_TRIGGERS +( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + BLOB_DATA LONG BYTE NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_CALENDARS +( + SCHED_NAME VARCHAR(120) NOT NULL, + CALENDAR_NAME VARCHAR(200) NOT NULL, + DESCRIPTION VARCHAR(250) NULL, + CALENDAR LONG BYTE NOT NULL, + PRIMARY KEY (SCHED_NAME,CALENDAR_NAME) +); + + +CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_FIRED_TRIGGERS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + ENTRY_ID VARCHAR(95) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + INSTANCE_NAME VARCHAR(200) NOT NULL, + FIRED_TIME FIXED(13) NOT NULL, + SCHED_TIME FIXED(13) NOT NULL, + PRIORITY FIXED(13) NOT NULL, + STATE VARCHAR(16) NOT NULL, + JOB_NAME VARCHAR(200) NULL, + JOB_GROUP VARCHAR(200) NULL, + IS_NONCONCURRENT VARCHAR(1) NULL, + REQUESTS_RECOVERY VARCHAR(1) NULL, + PRIMARY KEY (SCHED_NAME,ENTRY_ID) +); + +CREATE TABLE QRTZ_SCHEDULER_STATE + ( + SCHED_NAME VARCHAR(120) NOT NULL, + INSTANCE_NAME VARCHAR(200) NOT NULL, + LAST_CHECKIN_TIME FIXED(13) NOT NULL, + CHECKIN_INTERVAL FIXED(13) NOT NULL, + PRIMARY KEY (SCHED_NAME,INSTANCE_NAME) +); + +CREATE TABLE QRTZ_LOCKS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + LOCK_NAME VARCHAR(40) NOT NULL, + PRIMARY KEY (SCHED_NAME,LOCK_NAME) +); + + +commit; diff --git a/spring-boot-demo-task-quartz/init/dbTables/tables_solid.sql b/spring-boot-demo-task-quartz/init/dbTables/tables_solid.sql new file mode 100644 index 0000000..e02c8b4 --- /dev/null +++ b/spring-boot-demo-task-quartz/init/dbTables/tables_solid.sql @@ -0,0 +1,147 @@ + +DROP TABLE qrtz_locks; +DROP TABLE qrtz_scheduler_state; +DROP TABLE qrtz_fired_triggers; +DROP TABLE qrtz_paused_trigger_grps; +DROP TABLE qrtz_calendars; +DROP TABLE qrtz_blob_triggers; +DROP TABLE qrtz_cron_triggers; +DROP TABLE qrtz_simple_triggers; +DROP TABLE qrtz_simprop_triggers; +DROP TABLE qrtz_triggers; +DROP TABLE qrtz_job_details; + +create table qrtz_job_details ( + sched_name varchar(120) not null, + job_name varchar(80) not null, + job_group varchar(80) not null, + description varchar(120) , + job_class_name varchar(128) not null, + is_durable varchar(5) not null, + is_nonconcurrent varchar(5) not null, + is_update_data varchar(5) not null, + requests_recovery varchar(5) not null, + job_data long varbinary, +primary key (sched_name,job_name,job_group) +); + +create table qrtz_triggers( + sched_name varchar(120) not null, + trigger_name varchar(80) not null, + trigger_group varchar(80) not null, + job_name varchar(80) not null, + job_group varchar(80) not null, + description varchar(120) , + next_fire_time numeric(13), + prev_fire_time numeric(13), + priority integer, + trigger_state varchar(16) not null, + trigger_type varchar(8) not null, + start_time numeric(13) not null, + end_time numeric(13), + calendar_name varchar(80), + misfire_instr smallint, + job_data long varbinary, +primary key (sched_name,trigger_name,trigger_group), +foreign key (sched_name,job_name,job_group) references qrtz_job_details(sched_name,job_name,job_group) +); + +create table qrtz_simple_triggers( + sched_name varchar(120) not null, + trigger_name varchar(80) not null, + trigger_group varchar(80) not null, + repeat_count numeric(13) not null, + repeat_interval numeric(13) not null, + times_triggered numeric(13) not null, +primary key (sched_name,trigger_name,trigger_group), +foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) +); + +CREATE TABLE qrtz_simprop_triggers + ( + sched_name varchar(120) not null, + trigger_name VARCHAR(200) NOT NULL, + trigger_group VARCHAR(200) NOT NULL, + STR_PROP_1 VARCHAR(512) NULL, + STR_PROP_2 VARCHAR(512) NULL, + STR_PROP_3 VARCHAR(512) NULL, + INT_PROP_1 INTEGER NULL, + INT_PROP_2 INTEGER NULL, + LONG_PROP_1 NUMERIC(13) NULL, + LONG_PROP_2 NUMERIC(13) NULL, + DEC_PROP_1 NUMERIC(13,4) NULL, + DEC_PROP_2 NUMERIC(13,4) NULL, + BOOL_PROP_1 VARCHAR(5) NULL, + BOOL_PROP_2 VARCHAR(5) NULL, +PRIMARY KEY (sched_name,trigger_name,trigger_group), +FOREIGN KEY (sched_name,trigger_name,trigger_group) REFERENCES qrtz_triggers(sched_name,trigger_name,trigger_group) +); + + +create table qrtz_cron_triggers( + sched_name varchar(120) not null, + trigger_name varchar(80) not null, + trigger_group varchar(80) not null, + cron_expression varchar(120) not null, + time_zone_id varchar(80), +primary key (sched_name,trigger_name,trigger_group), +foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) +); + +create table qrtz_blob_triggers( + sched_name varchar(120) not null, + trigger_name varchar(80) not null, + trigger_group varchar(80) not null, + blob_data long varbinary , +primary key (sched_name,trigger_name,trigger_group), +foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) +); + +create table qrtz_calendars( + sched_name varchar(120) not null, + calendar_name varchar(80) not null, + calendar long varbinary not null, +primary key (sched_name,calendar_name) +); + +create table qrtz_paused_trigger_grps + ( + sched_name varchar(120) not null, + trigger_group varchar(80) not null, +primary key (sched_name,trigger_group) +); + +create table qrtz_fired_triggers( + sched_name varchar(120) not null, + entry_id varchar(95) not null, + trigger_name varchar(80) not null, + trigger_group varchar(80) not null, + instance_name varchar(80) not null, + fired_time numeric(13) not null, + sched_time numeric(13) not null, + priority integer not null, + state varchar(16) not null, + job_name varchar(80) null, + job_group varchar(80) null, + is_nonconcurrent varchar(5) null, + requests_recovery varchar(5) null, +primary key (sched_name,entry_id) +); + +create table qrtz_scheduler_state + ( + sched_name varchar(120) not null, + instance_name varchar(80) not null, + last_checkin_time numeric(13) not null, + checkin_interval numeric(13) not null, +primary key (sched_name,instance_name) +); + +create table qrtz_locks + ( + sched_name varchar(120) not null, + lock_name varchar(40) not null, +primary key (sched_name,lock_name) +); + +commit work; diff --git a/spring-boot-demo-task-quartz/init/dbTables/tables_sqlServer.sql b/spring-boot-demo-task-quartz/init/dbTables/tables_sqlServer.sql new file mode 100644 index 0000000..480c927 --- /dev/null +++ b/spring-boot-demo-task-quartz/init/dbTables/tables_sqlServer.sql @@ -0,0 +1,349 @@ +--# thanks to George Papastamatopoulos for submitting this ... and Marko Lahma for +--# updating it. +--# +--# In your Quartz properties file, you'll need to set +--# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.MSSQLDelegate +--# +--# you shouse enter your DB instance's name on the next line in place of "enter_db_name_here" +--# +--# +--# From a helpful (but anonymous) Quartz user: +--# +--# Regarding this error message: +--# +--# [Microsoft][SQLServer 2000 Driver for JDBC]Can't start a cloned connection while in manual transaction mode. +--# +--# +--# I added "SelectMethod=cursor;" to my Connection URL in the config file. +--# It Seems to work, hopefully no side effects. +--# +--# example: +--# "jdbc:microsoft:sqlserver://dbmachine:1433;SelectMethod=cursor"; +--# +--# Another user has pointed out that you will probably need to use the +--# JTDS driver +--# + +USE [enter_db_name_here] +GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1) +ALTER TABLE [dbo].[QRTZ_TRIGGERS] DROP CONSTRAINT FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS +GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1) +ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] DROP CONSTRAINT FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS +GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1) +ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] DROP CONSTRAINT FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS +GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_SIMPROP_TRIGGERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1) +ALTER TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] DROP CONSTRAINT FK_QRTZ_SIMPROP_TRIGGERS_QRTZ_TRIGGERS +GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_CALENDARS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) +DROP TABLE [dbo].[QRTZ_CALENDARS] +GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_CRON_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) +DROP TABLE [dbo].[QRTZ_CRON_TRIGGERS] +GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_BLOB_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) +DROP TABLE [dbo].[QRTZ_BLOB_TRIGGERS] +GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_FIRED_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) +DROP TABLE [dbo].[QRTZ_FIRED_TRIGGERS] +GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_PAUSED_TRIGGER_GRPS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) +DROP TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS] +GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_SCHEDULER_STATE]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) +DROP TABLE [dbo].[QRTZ_SCHEDULER_STATE] +GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_LOCKS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) +DROP TABLE [dbo].[QRTZ_LOCKS] +GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_JOB_DETAILS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) +DROP TABLE [dbo].[QRTZ_JOB_DETAILS] +GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_SIMPLE_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) +DROP TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] +GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_SIMPROP_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) +DROP TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] +GO + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) +DROP TABLE [dbo].[QRTZ_TRIGGERS] +GO + +CREATE TABLE [dbo].[QRTZ_CALENDARS] ( + [SCHED_NAME] [VARCHAR] (120) NOT NULL , + [CALENDAR_NAME] [VARCHAR] (200) NOT NULL , + [CALENDAR] [IMAGE] NOT NULL +) ON [PRIMARY] +GO + +CREATE TABLE [dbo].[QRTZ_CRON_TRIGGERS] ( + [SCHED_NAME] [VARCHAR] (120) NOT NULL , + [TRIGGER_NAME] [VARCHAR] (200) NOT NULL , + [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL , + [CRON_EXPRESSION] [VARCHAR] (120) NOT NULL , + [TIME_ZONE_ID] [VARCHAR] (80) +) ON [PRIMARY] +GO + +CREATE TABLE [dbo].[QRTZ_FIRED_TRIGGERS] ( + [SCHED_NAME] [VARCHAR] (120) NOT NULL , + [ENTRY_ID] [VARCHAR] (95) NOT NULL , + [TRIGGER_NAME] [VARCHAR] (200) NOT NULL , + [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL , + [INSTANCE_NAME] [VARCHAR] (200) NOT NULL , + [FIRED_TIME] [BIGINT] NOT NULL , + [SCHED_TIME] [BIGINT] NOT NULL , + [PRIORITY] [INTEGER] NOT NULL , + [STATE] [VARCHAR] (16) NOT NULL, + [JOB_NAME] [VARCHAR] (200) NULL , + [JOB_GROUP] [VARCHAR] (200) NULL , + [IS_NONCONCURRENT] [VARCHAR] (1) NULL , + [REQUESTS_RECOVERY] [VARCHAR] (1) NULL +) ON [PRIMARY] +GO + +CREATE TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS] ( + [SCHED_NAME] [VARCHAR] (120) NOT NULL , + [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL +) ON [PRIMARY] +GO + +CREATE TABLE [dbo].[QRTZ_SCHEDULER_STATE] ( + [SCHED_NAME] [VARCHAR] (120) NOT NULL , + [INSTANCE_NAME] [VARCHAR] (200) NOT NULL , + [LAST_CHECKIN_TIME] [BIGINT] NOT NULL , + [CHECKIN_INTERVAL] [BIGINT] NOT NULL +) ON [PRIMARY] +GO + +CREATE TABLE [dbo].[QRTZ_LOCKS] ( + [SCHED_NAME] [VARCHAR] (120) NOT NULL , + [LOCK_NAME] [VARCHAR] (40) NOT NULL +) ON [PRIMARY] +GO + +CREATE TABLE [dbo].[QRTZ_JOB_DETAILS] ( + [SCHED_NAME] [VARCHAR] (120) NOT NULL , + [JOB_NAME] [VARCHAR] (200) NOT NULL , + [JOB_GROUP] [VARCHAR] (200) NOT NULL , + [DESCRIPTION] [VARCHAR] (250) NULL , + [JOB_CLASS_NAME] [VARCHAR] (250) NOT NULL , + [IS_DURABLE] [VARCHAR] (1) NOT NULL , + [IS_NONCONCURRENT] [VARCHAR] (1) NOT NULL , + [IS_UPDATE_DATA] [VARCHAR] (1) NOT NULL , + [REQUESTS_RECOVERY] [VARCHAR] (1) NOT NULL , + [JOB_DATA] [IMAGE] NULL +) ON [PRIMARY] +GO + +CREATE TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] ( + [SCHED_NAME] [VARCHAR] (120) NOT NULL , + [TRIGGER_NAME] [VARCHAR] (200) NOT NULL , + [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL , + [REPEAT_COUNT] [BIGINT] NOT NULL , + [REPEAT_INTERVAL] [BIGINT] NOT NULL , + [TIMES_TRIGGERED] [BIGINT] NOT NULL +) ON [PRIMARY] +GO + +CREATE TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] ( + [SCHED_NAME] [VARCHAR] (120) NOT NULL , + [TRIGGER_NAME] [VARCHAR] (200) NOT NULL , + [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL , + [STR_PROP_1] [VARCHAR] (512) NULL, + [STR_PROP_2] [VARCHAR] (512) NULL, + [STR_PROP_3] [VARCHAR] (512) NULL, + [INT_PROP_1] [INT] NULL, + [INT_PROP_2] [INT] NULL, + [LONG_PROP_1] [BIGINT] NULL, + [LONG_PROP_2] [BIGINT] NULL, + [DEC_PROP_1] [NUMERIC] (13,4) NULL, + [DEC_PROP_2] [NUMERIC] (13,4) NULL, + [BOOL_PROP_1] [VARCHAR] (1) NULL, + [BOOL_PROP_2] [VARCHAR] (1) NULL, +) ON [PRIMARY] +GO + +CREATE TABLE [dbo].[QRTZ_BLOB_TRIGGERS] ( + [SCHED_NAME] [VARCHAR] (120) NOT NULL , + [TRIGGER_NAME] [VARCHAR] (200) NOT NULL , + [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL , + [BLOB_DATA] [IMAGE] NULL +) ON [PRIMARY] +GO + +CREATE TABLE [dbo].[QRTZ_TRIGGERS] ( + [SCHED_NAME] [VARCHAR] (120) NOT NULL , + [TRIGGER_NAME] [VARCHAR] (200) NOT NULL , + [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL , + [JOB_NAME] [VARCHAR] (200) NOT NULL , + [JOB_GROUP] [VARCHAR] (200) NOT NULL , + [DESCRIPTION] [VARCHAR] (250) NULL , + [NEXT_FIRE_TIME] [BIGINT] NULL , + [PREV_FIRE_TIME] [BIGINT] NULL , + [PRIORITY] [INTEGER] NULL , + [TRIGGER_STATE] [VARCHAR] (16) NOT NULL , + [TRIGGER_TYPE] [VARCHAR] (8) NOT NULL , + [START_TIME] [BIGINT] NOT NULL , + [END_TIME] [BIGINT] NULL , + [CALENDAR_NAME] [VARCHAR] (200) NULL , + [MISFIRE_INSTR] [SMALLINT] NULL , + [JOB_DATA] [IMAGE] NULL +) ON [PRIMARY] +GO + +ALTER TABLE [dbo].[QRTZ_CALENDARS] WITH NOCHECK ADD + CONSTRAINT [PK_QRTZ_CALENDARS] PRIMARY KEY CLUSTERED + ( + [SCHED_NAME], + [CALENDAR_NAME] + ) ON [PRIMARY] +GO + +ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] WITH NOCHECK ADD + CONSTRAINT [PK_QRTZ_CRON_TRIGGERS] PRIMARY KEY CLUSTERED + ( + [SCHED_NAME], + [TRIGGER_NAME], + [TRIGGER_GROUP] + ) ON [PRIMARY] +GO + +ALTER TABLE [dbo].[QRTZ_FIRED_TRIGGERS] WITH NOCHECK ADD + CONSTRAINT [PK_QRTZ_FIRED_TRIGGERS] PRIMARY KEY CLUSTERED + ( + [SCHED_NAME], + [ENTRY_ID] + ) ON [PRIMARY] +GO + +ALTER TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS] WITH NOCHECK ADD + CONSTRAINT [PK_QRTZ_PAUSED_TRIGGER_GRPS] PRIMARY KEY CLUSTERED + ( + [SCHED_NAME], + [TRIGGER_GROUP] + ) ON [PRIMARY] +GO + +ALTER TABLE [dbo].[QRTZ_SCHEDULER_STATE] WITH NOCHECK ADD + CONSTRAINT [PK_QRTZ_SCHEDULER_STATE] PRIMARY KEY CLUSTERED + ( + [SCHED_NAME], + [INSTANCE_NAME] + ) ON [PRIMARY] +GO + +ALTER TABLE [dbo].[QRTZ_LOCKS] WITH NOCHECK ADD + CONSTRAINT [PK_QRTZ_LOCKS] PRIMARY KEY CLUSTERED + ( + [SCHED_NAME], + [LOCK_NAME] + ) ON [PRIMARY] +GO + +ALTER TABLE [dbo].[QRTZ_JOB_DETAILS] WITH NOCHECK ADD + CONSTRAINT [PK_QRTZ_JOB_DETAILS] PRIMARY KEY CLUSTERED + ( + [SCHED_NAME], + [JOB_NAME], + [JOB_GROUP] + ) ON [PRIMARY] +GO + +ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] WITH NOCHECK ADD + CONSTRAINT [PK_QRTZ_SIMPLE_TRIGGERS] PRIMARY KEY CLUSTERED + ( + [SCHED_NAME], + [TRIGGER_NAME], + [TRIGGER_GROUP] + ) ON [PRIMARY] +GO + +ALTER TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] WITH NOCHECK ADD + CONSTRAINT [PK_QRTZ_SIMPROP_TRIGGERS] PRIMARY KEY CLUSTERED + ( + [SCHED_NAME], + [TRIGGER_NAME], + [TRIGGER_GROUP] + ) ON [PRIMARY] +GO + +ALTER TABLE [dbo].[QRTZ_TRIGGERS] WITH NOCHECK ADD + CONSTRAINT [PK_QRTZ_TRIGGERS] PRIMARY KEY CLUSTERED + ( + [SCHED_NAME], + [TRIGGER_NAME], + [TRIGGER_GROUP] + ) ON [PRIMARY] +GO + +ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] ADD + CONSTRAINT [FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS] FOREIGN KEY + ( + [SCHED_NAME], + [TRIGGER_NAME], + [TRIGGER_GROUP] + ) REFERENCES [dbo].[QRTZ_TRIGGERS] ( + [SCHED_NAME], + [TRIGGER_NAME], + [TRIGGER_GROUP] + ) ON DELETE CASCADE +GO + +ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] ADD + CONSTRAINT [FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS] FOREIGN KEY + ( + [SCHED_NAME], + [TRIGGER_NAME], + [TRIGGER_GROUP] + ) REFERENCES [dbo].[QRTZ_TRIGGERS] ( + [SCHED_NAME], + [TRIGGER_NAME], + [TRIGGER_GROUP] + ) ON DELETE CASCADE +GO + +ALTER TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] ADD + CONSTRAINT [FK_QRTZ_SIMPROP_TRIGGERS_QRTZ_TRIGGERS] FOREIGN KEY + ( + [SCHED_NAME], + [TRIGGER_NAME], + [TRIGGER_GROUP] + ) REFERENCES [dbo].[QRTZ_TRIGGERS] ( + [SCHED_NAME], + [TRIGGER_NAME], + [TRIGGER_GROUP] + ) ON DELETE CASCADE +GO + +ALTER TABLE [dbo].[QRTZ_TRIGGERS] ADD + CONSTRAINT [FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS] FOREIGN KEY + ( + [SCHED_NAME], + [JOB_NAME], + [JOB_GROUP] + ) REFERENCES [dbo].[QRTZ_JOB_DETAILS] ( + [SCHED_NAME], + [JOB_NAME], + [JOB_GROUP] + ) +GO + diff --git a/spring-boot-demo-task-quartz/init/dbTables/tables_sybase.sql b/spring-boot-demo-task-quartz/init/dbTables/tables_sybase.sql new file mode 100644 index 0000000..0af3f98 --- /dev/null +++ b/spring-boot-demo-task-quartz/init/dbTables/tables_sybase.sql @@ -0,0 +1,313 @@ +/*==============================================================================================*/ +/* Quartz database tables creation script for Sybase ASE 12.5 */ +/* Written by Pertti Laiho (email: pertti.laiho@deio.net), 9th May 2003 */ +/* */ +/* Compatible with Quartz version 1.1.2 */ +/* */ +/* Sybase ASE works ok with the SybaseDelegate delegate class. That means in your Quartz properties */ +/* file, you'll need to set: */ +/* org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.SybaseDelegate */ +/*==============================================================================================*/ + +use your_db_name_here +go + +/*==============================================================================*/ +/* Clear all tables: */ +/*==============================================================================*/ + +IF OBJECT_ID('QRTZ_FIRED_TRIGGERS') IS NOT NULL +delete from QRTZ_FIRED_TRIGGERS +go +IF OBJECT_ID('QRTZ_PAUSED_TRIGGER_GRPS') IS NOT NULL +delete from QRTZ_PAUSED_TRIGGER_GRPS +go +IF OBJECT_ID('QRTZ_SCHEDULER_STATE') IS NOT NULL +delete from QRTZ_SCHEDULER_STATE +go +IF OBJECT_ID('QRTZ_LOCKS') IS NOT NULL +delete from QRTZ_LOCKS +go +IF OBJECT_ID('QRTZ_SIMPLE_TRIGGERS') IS NOT NULL +delete from QRTZ_SIMPLE_TRIGGERS +go +IF OBJECT_ID('QRTZ_SIMPROP_TRIGGERS') IS NOT NULL +delete from QRTZ_SIMPROP_TRIGGERS +go +IF OBJECT_ID('QRTZ_CRON_TRIGGERS') IS NOT NULL +delete from QRTZ_CRON_TRIGGERS +go +IF OBJECT_ID('QRTZ_BLOB_TRIGGERS') IS NOT NULL +delete from QRTZ_BLOB_TRIGGERS +go +IF OBJECT_ID('QRTZ_TRIGGERS') IS NOT NULL +delete from QRTZ_TRIGGERS +go +IF OBJECT_ID('QRTZ_JOB_DETAILS') IS NOT NULL +delete from QRTZ_JOB_DETAILS +go +IF OBJECT_ID('QRTZ_CALENDARS') IS NOT NULL +delete from QRTZ_CALENDARS +go + +/*==============================================================================*/ +/* Drop constraints: */ +/*==============================================================================*/ + +alter table QRTZ_TRIGGERS +drop constraint FK_triggers_job_details +go + +alter table QRTZ_CRON_TRIGGERS +drop constraint FK_cron_triggers_triggers +go + +alter table QRTZ_SIMPLE_TRIGGERS +drop constraint FK_simple_triggers_triggers +go + +alter table QRTZ_SIMPROP_TRIGGERS +drop constraint FK_simprop_triggers_triggers +go + +alter table QRTZ_BLOB_TRIGGERS +drop constraint FK_blob_triggers_triggers +go + +/*==============================================================================*/ +/* Drop tables: */ +/*==============================================================================*/ + +drop table QRTZ_FIRED_TRIGGERS +go +drop table QRTZ_PAUSED_TRIGGER_GRPS +go +drop table QRTZ_SCHEDULER_STATE +go +drop table QRTZ_LOCKS +go +drop table QRTZ_SIMPLE_TRIGGERS +go +drop table QRTZ_SIMPROP_TRIGGERS +go +drop table QRTZ_CRON_TRIGGERS +go +drop table QRTZ_BLOB_TRIGGERS +go +drop table QRTZ_TRIGGERS +go +drop table QRTZ_JOB_DETAILS +go +drop table QRTZ_CALENDARS +go + +/*==============================================================================*/ +/* Create tables: */ +/*==============================================================================*/ + +create table QRTZ_CALENDARS ( +SCHED_NAME varchar(120) not null, +CALENDAR_NAME varchar(80) not null, +CALENDAR image not null +) +go + +create table QRTZ_CRON_TRIGGERS ( +SCHED_NAME varchar(120) not null, +TRIGGER_NAME varchar(80) not null, +TRIGGER_GROUP varchar(80) not null, +CRON_EXPRESSION varchar(120) not null, +TIME_ZONE_ID varchar(80) null, +) +go + +create table QRTZ_PAUSED_TRIGGER_GRPS ( +SCHED_NAME varchar(120) not null, +TRIGGER_GROUP varchar(80) not null, +) +go + +create table QRTZ_FIRED_TRIGGERS( +SCHED_NAME varchar(120) not null, +ENTRY_ID varchar(95) not null, +TRIGGER_NAME varchar(80) not null, +TRIGGER_GROUP varchar(80) not null, +INSTANCE_NAME varchar(80) not null, +FIRED_TIME numeric(13,0) not null, +SCHED_TIME numeric(13,0) not null, +PRIORITY int not null, +STATE varchar(16) not null, +JOB_NAME varchar(80) null, +JOB_GROUP varchar(80) null, +IS_NONCONCURRENT bit not null, +REQUESTS_RECOVERY bit not null, +) +go + +create table QRTZ_SCHEDULER_STATE ( +SCHED_NAME varchar(120) not null, +INSTANCE_NAME varchar(80) not null, +LAST_CHECKIN_TIME numeric(13,0) not null, +CHECKIN_INTERVAL numeric(13,0) not null, +) +go + +create table QRTZ_LOCKS ( +SCHED_NAME varchar(120) not null, +LOCK_NAME varchar(40) not null, +) +go + + +create table QRTZ_JOB_DETAILS ( +SCHED_NAME varchar(120) not null, +JOB_NAME varchar(80) not null, +JOB_GROUP varchar(80) not null, +DESCRIPTION varchar(120) null, +JOB_CLASS_NAME varchar(128) not null, +IS_DURABLE bit not null, +IS_NONCONCURRENT bit not null, +IS_UPDATE_DATA bit not null, +REQUESTS_RECOVERY bit not null, +JOB_DATA image null +) +go + +create table QRTZ_SIMPLE_TRIGGERS ( +SCHED_NAME varchar(120) not null, +TRIGGER_NAME varchar(80) not null, +TRIGGER_GROUP varchar(80) not null, +REPEAT_COUNT numeric(13,0) not null, +REPEAT_INTERVAL numeric(13,0) not null, +TIMES_TRIGGERED numeric(13,0) not null +) +go + +CREATE TABLE QRTZ_SIMPROP_TRIGGERS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + STR_PROP_1 VARCHAR(512) NULL, + STR_PROP_2 VARCHAR(512) NULL, + STR_PROP_3 VARCHAR(512) NULL, + INT_PROP_1 INT NULL, + INT_PROP_2 INT NULL, + LONG_PROP_1 NUMERIC(13,0) NULL, + LONG_PROP_2 NUMERIC(13,0) NULL, + DEC_PROP_1 NUMERIC(13,4) NULL, + DEC_PROP_2 NUMERIC(13,4) NULL, + BOOL_PROP_1 bit NOT NULL, + BOOL_PROP_2 bit NOT NULL +) +go + +create table QRTZ_BLOB_TRIGGERS ( +SCHED_NAME varchar(120) not null, +TRIGGER_NAME varchar(80) not null, +TRIGGER_GROUP varchar(80) not null, +BLOB_DATA image null +) +go + +create table QRTZ_TRIGGERS ( +SCHED_NAME varchar(120) not null, +TRIGGER_NAME varchar(80) not null, +TRIGGER_GROUP varchar(80) not null, +JOB_NAME varchar(80) not null, +JOB_GROUP varchar(80) not null, +DESCRIPTION varchar(120) null, +NEXT_FIRE_TIME numeric(13,0) null, +PREV_FIRE_TIME numeric(13,0) null, +PRIORITY int null, +TRIGGER_STATE varchar(16) not null, +TRIGGER_TYPE varchar(8) not null, +START_TIME numeric(13,0) not null, +END_TIME numeric(13,0) null, +CALENDAR_NAME varchar(80) null, +MISFIRE_INSTR smallint null, +JOB_DATA image null +) +go + +/*==============================================================================*/ +/* Create primary key constraints: */ +/*==============================================================================*/ + +alter table QRTZ_CALENDARS +add constraint PK_qrtz_calendars primary key clustered (SCHED_NAME,CALENDAR_NAME) +go + +alter table QRTZ_CRON_TRIGGERS +add constraint PK_qrtz_cron_triggers primary key clustered (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP) +go + +alter table QRTZ_FIRED_TRIGGERS +add constraint PK_qrtz_fired_triggers primary key clustered (SCHED_NAME,ENTRY_ID) +go + +alter table QRTZ_PAUSED_TRIGGER_GRPS +add constraint PK_qrtz_paused_trigger_grps primary key clustered (SCHED_NAME,TRIGGER_GROUP) +go + +alter table QRTZ_SCHEDULER_STATE +add constraint PK_qrtz_scheduler_state primary key clustered (SCHED_NAME,INSTANCE_NAME) +go + +alter table QRTZ_LOCKS +add constraint PK_qrtz_locks primary key clustered (SCHED_NAME,LOCK_NAME) +go + +alter table QRTZ_JOB_DETAILS +add constraint PK_qrtz_job_details primary key clustered (SCHED_NAME,JOB_NAME, JOB_GROUP) +go + +alter table QRTZ_SIMPLE_TRIGGERS +add constraint PK_qrtz_simple_triggers primary key clustered (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP) +go + +alter table QRTZ_SIMPROP_TRIGGERS +add constraint PK_qrtz_simprop_triggers primary key clustered (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP) +go + +alter table QRTZ_TRIGGERS +add constraint PK_qrtz_triggers primary key clustered (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP) +go + +alter table QRTZ_BLOB_TRIGGERS +add constraint PK_qrtz_blob_triggers primary key clustered (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP) +go + + +/*==============================================================================*/ +/* Create foreign key constraints: */ +/*==============================================================================*/ + +alter table QRTZ_CRON_TRIGGERS +add constraint FK_cron_triggers_triggers foreign key (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +references QRTZ_TRIGGERS (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +go + +alter table QRTZ_SIMPLE_TRIGGERS +add constraint FK_simple_triggers_triggers foreign key (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +references QRTZ_TRIGGERS (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +go + +alter table QRTZ_SIMPROP_TRIGGERS +add constraint FK_simprop_triggers_triggers foreign key (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +references QRTZ_TRIGGERS (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +go + +alter table QRTZ_TRIGGERS +add constraint FK_triggers_job_details foreign key (SCHED_NAME,JOB_NAME,JOB_GROUP) +references QRTZ_JOB_DETAILS (SCHED_NAME,JOB_NAME,JOB_GROUP) +go + +alter table QRTZ_BLOB_TRIGGERS +add constraint FK_blob_triggers_triggers foreign key (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +references QRTZ_TRIGGERS (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +go + +/*==============================================================================*/ +/* End of script. */ +/*==============================================================================*/ diff --git a/spring-boot-demo-task-quartz/pom.xml b/spring-boot-demo-task-quartz/pom.xml index 0d11947..ffad7d4 100644 --- a/spring-boot-demo-task-quartz/pom.xml +++ b/spring-boot-demo-task-quartz/pom.xml @@ -20,6 +20,8 @@ UTF-8 UTF-8 1.8 + 2.1.0 + 1.2.10 @@ -33,6 +35,18 @@ spring-boot-starter-quartz + + tk.mybatis + mapper-spring-boot-starter + ${mybatis.mapper.version} + + + + com.github.pagehelper + pagehelper-spring-boot-starter + ${mybatis.pagehelper.version} + + mysql mysql-connector-java @@ -44,6 +58,12 @@ test + + com.mchange + c3p0 + 0.9.5.2 + + cn.hutool hutool-all diff --git a/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/SpringBootDemoTaskQuartzApplication.java b/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/SpringBootDemoTaskQuartzApplication.java index 49ac3fa..ba40b18 100644 --- a/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/SpringBootDemoTaskQuartzApplication.java +++ b/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/SpringBootDemoTaskQuartzApplication.java @@ -2,6 +2,7 @@ package com.xkcoding.task.quartz; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import tk.mybatis.spring.annotation.MapperScan; /** *

@@ -16,6 +17,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; * @version: V1.0 * @modified: yangkai.shen */ +@MapperScan(basePackages = {"com.xkcoding.task.quartz.mapper"}) @SpringBootApplication public class SpringBootDemoTaskQuartzApplication { diff --git a/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/common/ApiResponse.java b/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/common/ApiResponse.java new file mode 100644 index 0000000..81dad5e --- /dev/null +++ b/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/common/ApiResponse.java @@ -0,0 +1,72 @@ +package com.xkcoding.task.quartz.common; + +import lombok.Data; +import org.springframework.http.HttpStatus; + +import java.io.Serializable; + +/** + *

+ * 通用Api封装 + *

+ * + * @package: com.xkcoding.task.quartz.common + * @description: 通用Api封装 + * @author: yangkai.shen + * @date: Created in 2018-11-26 13:59 + * @copyright: Copyright (c) 2018 + * @version: V1.0 + * @modified: yangkai.shen + */ +@Data +public class ApiResponse implements Serializable { + /** + * 返回信息 + */ + private String message; + + /** + * 返回数据 + */ + private Object data; + + public ApiResponse() { + } + + private ApiResponse(String message, Object data) { + this.message = message; + this.data = data; + } + + /** + * 通用封装获取ApiResponse对象 + * + * @param message 返回信息 + * @param data 返回数据 + * @return ApiResponse + */ + public static ApiResponse of(String message, Object data) { + return new ApiResponse(message, data); + } + + /** + * 通用成功封装获取ApiResponse对象 + * + * @param data 返回数据 + * @return ApiResponse + */ + public static ApiResponse ok(Object data) { + return new ApiResponse(HttpStatus.OK.getReasonPhrase(), data); + } + + /** + * 通用封装获取ApiResponse对象 + * + * @param message 返回信息 + * @return ApiResponse + */ + public static ApiResponse msg(String message) { + return of(message, null); + } + +} diff --git a/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/controller/JobController.java b/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/controller/JobController.java new file mode 100644 index 0000000..2e167ec --- /dev/null +++ b/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/controller/JobController.java @@ -0,0 +1,123 @@ +package com.xkcoding.task.quartz.controller; + +import cn.hutool.core.lang.Dict; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.github.pagehelper.PageInfo; +import com.xkcoding.task.quartz.common.ApiResponse; +import com.xkcoding.task.quartz.entity.domain.JobAndTrigger; +import com.xkcoding.task.quartz.entity.form.JobForm; +import com.xkcoding.task.quartz.service.JobService; +import lombok.extern.slf4j.Slf4j; +import org.quartz.SchedulerException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; + +/** + *

+ * Job Controller + *

+ * + * @package: com.xkcoding.task.quartz.controller + * @description: Job Controller + * @author: yangkai.shen + * @date: Created in 2018-11-26 13:23 + * @copyright: Copyright (c) 2018 + * @version: V1.0 + * @modified: yangkai.shen + */ +@RestController +@RequestMapping("/job") +@Slf4j +public class JobController { + private final JobService jobService; + + @Autowired + public JobController(JobService jobService) { + this.jobService = jobService; + } + + /** + * 保存定时任务 + */ + @PostMapping + public ResponseEntity addJob(@Valid JobForm form) { + try { + jobService.addJob(form); + } catch (Exception e) { + return new ResponseEntity<>(ApiResponse.msg(e.getMessage()), HttpStatus.INTERNAL_SERVER_ERROR); + } + + return new ResponseEntity<>(ApiResponse.msg("操作成功"), HttpStatus.CREATED); + } + + /** + * 删除定时任务 + */ + @DeleteMapping + public ResponseEntity deleteJob(JobForm form) throws SchedulerException { + if (StrUtil.hasBlank(form.getJobGroupName(), form.getJobClassName())) { + return new ResponseEntity<>(ApiResponse.msg("参数不能为空"), HttpStatus.BAD_REQUEST); + } + + jobService.deleteJob(form); + return new ResponseEntity<>(ApiResponse.msg("删除成功"), HttpStatus.OK); + } + + /** + * 暂停定时任务 + */ + @PutMapping(params = "pause") + public ResponseEntity pauseJob(JobForm form) throws SchedulerException { + if (StrUtil.hasBlank(form.getJobGroupName(), form.getJobClassName())) { + return new ResponseEntity<>(ApiResponse.msg("参数不能为空"), HttpStatus.BAD_REQUEST); + } + + jobService.pauseJob(form); + return new ResponseEntity<>(ApiResponse.msg("暂停成功"), HttpStatus.OK); + } + + /** + * 恢复定时任务 + */ + @PutMapping(params = "resume") + public ResponseEntity resumeJob(JobForm form) throws SchedulerException { + if (StrUtil.hasBlank(form.getJobGroupName(), form.getJobClassName())) { + return new ResponseEntity<>(ApiResponse.msg("参数不能为空"), HttpStatus.BAD_REQUEST); + } + + jobService.resumeJob(form); + return new ResponseEntity<>(ApiResponse.msg("恢复成功"), HttpStatus.OK); + } + + /** + * 修改定时任务,定时时间 + */ + @PutMapping(params = "cron") + public ResponseEntity cronJob(@Valid JobForm form) { + try { + jobService.cronJob(form); + } catch (Exception e) { + return new ResponseEntity<>(ApiResponse.msg(e.getMessage()), HttpStatus.INTERNAL_SERVER_ERROR); + } + + return new ResponseEntity<>(ApiResponse.msg("修改成功"), HttpStatus.OK); + } + + @GetMapping + public ResponseEntity jobList(Integer currentPage, Integer pageSize) { + if (ObjectUtil.isNull(currentPage)) { + currentPage = 1; + } + if (ObjectUtil.isNull(pageSize)) { + pageSize = 10; + } + PageInfo all = jobService.list(currentPage, pageSize); + return ResponseEntity.ok(ApiResponse.ok(Dict.create().set("total", all.getTotal()).set("data", all.getList()))); + } + +} diff --git a/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/entity/domain/JobAndTrigger.java b/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/entity/domain/JobAndTrigger.java new file mode 100644 index 0000000..5a05b92 --- /dev/null +++ b/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/entity/domain/JobAndTrigger.java @@ -0,0 +1,62 @@ +package com.xkcoding.task.quartz.entity.domain; + +import lombok.Data; + +import java.math.BigInteger; + +/** + *

+ * 实体类 + *

+ * + * @package: com.xkcoding.task.quartz.entity.domain + * @description: 实体类 + * @author: yangkai.shen + * @date: Created in 2018-11-26 15:05 + * @copyright: Copyright (c) 2018 + * @version: V1.0 + * @modified: yangkai.shen + */ +@Data +public class JobAndTrigger { + /** + * 定时任务名称 + */ + private String jobName; + /** + * 定时任务组 + */ + private String jobGroup; + /** + * 定时任务全类名 + */ + private String jobClassName; + /** + * 触发器名称 + */ + private String triggerName; + /** + * 触发器组 + */ + private String triggerGroup; + /** + * 重复间隔 + */ + private BigInteger repeatInterval; + /** + * 触发次数 + */ + private BigInteger timesTriggered; + /** + * cron 表达式 + */ + private String cronExpression; + /** + * 时区 + */ + private String timeZoneId; + /** + * 定时任务状态 + */ + private String triggerState; +} \ No newline at end of file diff --git a/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/entity/form/JobForm.java b/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/entity/form/JobForm.java new file mode 100644 index 0000000..d571083 --- /dev/null +++ b/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/entity/form/JobForm.java @@ -0,0 +1,39 @@ +package com.xkcoding.task.quartz.entity.form; + +import lombok.Data; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotBlank; + +/** + *

+ * 定时任务详情 + *

+ * + * @package: com.xkcoding.task.quartz.entity.form + * @description: 定时任务详情 + * @author: yangkai.shen + * @date: Created in 2018-11-26 13:42 + * @copyright: Copyright (c) 2018 + * @version: V1.0 + * @modified: yangkai.shen + */ +@Data +@Accessors(chain = true) +public class JobForm { + /** + * 定时任务全类名 + */ + @NotBlank(message = "类名不能为空") + private String jobClassName; + /** + * 任务组名 + */ + @NotBlank(message = "任务组名不能为空") + private String jobGroupName; + /** + * 定时任务cron表达式 + */ + @NotBlank(message = "cron表达式不能为空") + private String cronExpression; +} diff --git a/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/job/HelloJob.java b/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/job/HelloJob.java new file mode 100644 index 0000000..f56899c --- /dev/null +++ b/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/job/HelloJob.java @@ -0,0 +1,28 @@ +package com.xkcoding.task.quartz.job; + +import cn.hutool.core.date.DateUtil; +import com.xkcoding.task.quartz.job.base.BaseJob; +import lombok.extern.slf4j.Slf4j; +import org.quartz.JobExecutionContext; + +/** + *

+ * Hello Job + *

+ * + * @package: com.xkcoding.task.quartz.job + * @description: Hello Job + * @author: yangkai.shen + * @date: Created in 2018-11-26 13:22 + * @copyright: Copyright (c) 2018 + * @version: V1.0 + * @modified: yangkai.shen + */ +@Slf4j +public class HelloJob implements BaseJob { + + @Override + public void execute(JobExecutionContext context) { + log.error("Hello Job 执行时间: {}", DateUtil.now()); + } +} \ No newline at end of file diff --git a/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/job/TestJob.java b/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/job/TestJob.java new file mode 100644 index 0000000..a42d184 --- /dev/null +++ b/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/job/TestJob.java @@ -0,0 +1,28 @@ +package com.xkcoding.task.quartz.job; + +import cn.hutool.core.date.DateUtil; +import com.xkcoding.task.quartz.job.base.BaseJob; +import lombok.extern.slf4j.Slf4j; +import org.quartz.JobExecutionContext; + +/** + *

+ * Test Job + *

+ * + * @package: com.xkcoding.task.quartz.job + * @description: Test Job + * @author: yangkai.shen + * @date: Created in 2018-11-26 13:22 + * @copyright: Copyright (c) 2018 + * @version: V1.0 + * @modified: yangkai.shen + */ +@Slf4j +public class TestJob implements BaseJob { + + @Override + public void execute(JobExecutionContext context) { + log.error("Test Job 执行时间: {}", DateUtil.now()); + } +} \ No newline at end of file diff --git a/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/job/base/BaseJob.java b/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/job/base/BaseJob.java new file mode 100644 index 0000000..cc5156f --- /dev/null +++ b/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/job/base/BaseJob.java @@ -0,0 +1,40 @@ +package com.xkcoding.task.quartz.job.base; + +import org.quartz.*; + +/** + *

+ * Job 基类,主要是在 {@link org.quartz.Job} 上再封装一层,只让我们自己项目里的Job去实现 + *

+ * + * @package: com.xkcoding.task.quartz.job.base + * @description: Job 基类,主要是在 {@link org.quartz.Job} 上再封装一层,只让我们自己项目里的Job去实现 + * @author: yangkai.shen + * @date: Created in 2018-11-26 13:27 + * @copyright: Copyright (c) 2018 + * @version: V1.0 + * @modified: yangkai.shen + */ +public interface BaseJob extends Job { + /** + *

+ * Called by the {@link Scheduler} when a {@link Trigger} + * fires that is associated with the Job. + *

+ * + *

+ * The implementation may wish to set a + * {@link JobExecutionContext#setResult(Object) result} object on the + * {@link JobExecutionContext} before this method exits. The result itself + * is meaningless to Quartz, but may be informative to + * {@link JobListener}s or + * {@link TriggerListener}s that are watching the job's + * execution. + *

+ * + * @param context 上下文 + * @throws JobExecutionException if there is an exception while executing the job. + */ + @Override + void execute(JobExecutionContext context) throws JobExecutionException; +} diff --git a/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/mapper/JobMapper.java b/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/mapper/JobMapper.java new file mode 100644 index 0000000..f59885b --- /dev/null +++ b/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/mapper/JobMapper.java @@ -0,0 +1,29 @@ +package com.xkcoding.task.quartz.mapper; + +import com.xkcoding.task.quartz.entity.domain.JobAndTrigger; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + *

+ * Job Mapper + *

+ * + * @package: com.xkcoding.task.quartz.mapper + * @description: Job Mapper + * @author: yangkai.shen + * @date: Created in 2018-11-26 15:12 + * @copyright: Copyright (c) 2018 + * @version: V1.0 + * @modified: yangkai.shen + */ +@Component +public interface JobMapper { + /** + * 查询定时作业和触发器列表 + * + * @return 定时作业和触发器列表 + */ + List list(); +} diff --git a/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/service/JobService.java b/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/service/JobService.java new file mode 100644 index 0000000..d8cb57b --- /dev/null +++ b/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/service/JobService.java @@ -0,0 +1,71 @@ +package com.xkcoding.task.quartz.service; + +import com.github.pagehelper.PageInfo; +import com.xkcoding.task.quartz.entity.domain.JobAndTrigger; +import com.xkcoding.task.quartz.entity.form.JobForm; +import org.quartz.JobDetail; +import org.quartz.SchedulerException; + +/** + *

+ * Job Service + *

+ * + * @package: com.xkcoding.task.quartz.service + * @description: Job Service + * @author: yangkai.shen + * @date: Created in 2018-11-26 13:24 + * @copyright: Copyright (c) 2018 + * @version: V1.0 + * @modified: yangkai.shen + */ +public interface JobService { + /** + * 添加并启动定时任务 + * + * @param form 表单参数 {@link JobForm} + * @throws Exception 异常 + */ + void addJob(JobForm form) throws Exception; + + /** + * 删除定时任务 + * + * @param form 表单参数 {@link JobForm} + * @throws SchedulerException 异常 + */ + void deleteJob(JobForm form) throws SchedulerException; + + /** + * 暂停定时任务 + * + * @param form 表单参数 {@link JobForm} + * @throws SchedulerException 异常 + */ + void pauseJob(JobForm form) throws SchedulerException; + + /** + * 恢复定时任务 + * + * @param form 表单参数 {@link JobForm} + * @throws SchedulerException 异常 + */ + void resumeJob(JobForm form) throws SchedulerException; + + /** + * 重新配置定时任务 + * + * @param form 表单参数 {@link JobForm} + * @throws Exception 异常 + */ + void cronJob(JobForm form) throws Exception; + + /** + * 查询定时任务列表 + * + * @param currentPage 当前页 + * @param pageSize 每页条数 + * @return 定时任务列表 + */ + PageInfo list(Integer currentPage, Integer pageSize); +} diff --git a/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/service/impl/JobServiceImpl.java b/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/service/impl/JobServiceImpl.java new file mode 100644 index 0000000..63eb61f --- /dev/null +++ b/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/service/impl/JobServiceImpl.java @@ -0,0 +1,146 @@ +package com.xkcoding.task.quartz.service.impl; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.xkcoding.task.quartz.entity.domain.JobAndTrigger; +import com.xkcoding.task.quartz.entity.form.JobForm; +import com.xkcoding.task.quartz.mapper.JobMapper; +import com.xkcoding.task.quartz.service.JobService; +import com.xkcoding.task.quartz.util.JobUtil; +import lombok.extern.slf4j.Slf4j; +import org.quartz.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * Job Service + *

+ * + * @package: com.xkcoding.task.quartz.service.impl + * @description: Job Service + * @author: yangkai.shen + * @date: Created in 2018-11-26 13:25 + * @copyright: Copyright (c) 2018 + * @version: V1.0 + * @modified: yangkai.shen + */ +@Service +@Slf4j +public class JobServiceImpl implements JobService { + private final Scheduler scheduler; + private final JobMapper jobMapper; + + @Autowired + public JobServiceImpl(Scheduler scheduler, JobMapper jobMapper) { + this.scheduler = scheduler; + this.jobMapper = jobMapper; + } + + /** + * 添加并启动定时任务 + * + * @param form 表单参数 {@link JobForm} + * @return {@link JobDetail} + * @throws Exception 异常 + */ + @Override + public void addJob(JobForm form) throws Exception { + // 启动调度器 + scheduler.start(); + + // 构建Job信息 + JobDetail jobDetail = JobBuilder.newJob(JobUtil.getClass(form.getJobClassName()).getClass()).withIdentity(form.getJobClassName(), form.getJobGroupName()).build(); + + // Cron表达式调度构建器(即任务执行的时间) + CronScheduleBuilder cron = CronScheduleBuilder.cronSchedule(form.getCronExpression()); + + //根据Cron表达式构建一个Trigger + CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity(form.getJobClassName(), form.getJobGroupName()).withSchedule(cron).build(); + + try { + scheduler.scheduleJob(jobDetail, trigger); + } catch (SchedulerException e) { + log.error("【定时任务】创建失败!", e); + throw new Exception("【定时任务】创建失败!"); + } + + } + + /** + * 删除定时任务 + * + * @param form 表单参数 {@link JobForm} + * @throws SchedulerException 异常 + */ + @Override + public void deleteJob(JobForm form) throws SchedulerException { + scheduler.pauseTrigger(TriggerKey.triggerKey(form.getJobClassName(), form.getJobGroupName())); + scheduler.unscheduleJob(TriggerKey.triggerKey(form.getJobClassName(), form.getJobGroupName())); + scheduler.deleteJob(JobKey.jobKey(form.getJobClassName(), form.getJobGroupName())); + } + + /** + * 暂停定时任务 + * + * @param form 表单参数 {@link JobForm} + * @throws SchedulerException 异常 + */ + @Override + public void pauseJob(JobForm form) throws SchedulerException { + scheduler.pauseJob(JobKey.jobKey(form.getJobClassName(), form.getJobGroupName())); + } + + /** + * 恢复定时任务 + * + * @param form 表单参数 {@link JobForm} + * @throws SchedulerException 异常 + */ + @Override + public void resumeJob(JobForm form) throws SchedulerException { + scheduler.resumeJob(JobKey.jobKey(form.getJobClassName(), form.getJobGroupName())); + } + + /** + * 重新配置定时任务 + * + * @param form 表单参数 {@link JobForm} + * @throws Exception 异常 + */ + @Override + public void cronJob(JobForm form) throws Exception { + try { + TriggerKey triggerKey = TriggerKey.triggerKey(form.getJobClassName(), form.getJobGroupName()); + // 表达式调度构建器 + CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(form.getCronExpression()); + + CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey); + + // 根据Cron表达式构建一个Trigger + trigger = trigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(scheduleBuilder).build(); + + // 按新的trigger重新设置job执行 + scheduler.rescheduleJob(triggerKey, trigger); + } catch (SchedulerException e) { + log.error("【定时任务】更新失败!", e); + throw new Exception("【定时任务】创建失败!"); + } + } + + /** + * 查询定时任务列表 + * + * @param currentPage 当前页 + * @param pageSize 每页条数 + * @return 定时任务列表 + */ + @Override + public PageInfo list(Integer currentPage, Integer pageSize) { + PageHelper.startPage(currentPage, pageSize); + List list = jobMapper.list(); + return new PageInfo<>(list); + } +} diff --git a/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/util/JobUtil.java b/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/util/JobUtil.java new file mode 100644 index 0000000..49c0603 --- /dev/null +++ b/spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/util/JobUtil.java @@ -0,0 +1,30 @@ +package com.xkcoding.task.quartz.util; + +import com.xkcoding.task.quartz.job.base.BaseJob; + +/** + *

+ * 定时任务反射工具类 + *

+ * + * @package: com.xkcoding.task.quartz.util + * @description: 定时任务反射工具类 + * @author: yangkai.shen + * @date: Created in 2018-11-26 13:33 + * @copyright: Copyright (c) 2018 + * @version: V1.0 + * @modified: yangkai.shen + */ +public class JobUtil { + /** + * 根据全类名获取Job实例 + * + * @param classname Job全类名 + * @return {@link BaseJob} 实例 + * @throws Exception 泛型获取异常 + */ + public static BaseJob getClass(String classname) throws Exception { + Class clazz = Class.forName(classname); + return (BaseJob) clazz.newInstance(); + } +} diff --git a/spring-boot-demo-task-quartz/src/main/resources/application.yml b/spring-boot-demo-task-quartz/src/main/resources/application.yml index e69de29..c934aa3 100644 --- a/spring-boot-demo-task-quartz/src/main/resources/application.yml +++ b/spring-boot-demo-task-quartz/src/main/resources/application.yml @@ -0,0 +1,56 @@ +server: + port: 8080 + servlet: + context-path: /demo +spring: + datasource: + url: jdbc:mysql://127.0.0.1:3306/spring-boot-demo?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=GMT%2B8 + username: root + password: root + driver-class-name: com.mysql.cj.jdbc.Driver + type: com.zaxxer.hikari.HikariDataSource + hikari: + minimum-idle: 5 + connection-test-query: SELECT 1 FROM DUAL + maximum-pool-size: 20 + auto-commit: true + idle-timeout: 30000 + pool-name: SpringBootDemoHikariCP + max-lifetime: 60000 + connection-timeout: 30000 + quartz: + # 参见 org.springframework.boot.autoconfigure.quartz.QuartzProperties + job-store-type: jdbc + wait-for-jobs-to-complete-on-shutdown: true + scheduler-name: SpringBootDemoScheduler + properties: + org.quartz.threadPool.threadCount: 5 + org.quartz.threadPool.threadPriority: 5 + org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread: true + org.quartz.jobStore.misfireThreshold: 5000 + org.quartz.jobStore.class: org.quartz.impl.jdbcjobstore.JobStoreTX + org.quartz.jobStore.driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate +logging: + level: + com.xkcoding: debug + com.xkcoding.task.quartz.mapper: trace +mybatis: + configuration: + # 下划线转驼峰 + map-underscore-to-camel-case: true + mapper-locations: classpath:mappers/*.xml + type-aliases-package: com.xkcoding.task.quartz.entity +mapper: + mappers: + - tk.mybatis.mapper.common.Mapper + not-empty: true + style: camelhump + wrap-keyword: "`{0}`" + safe-delete: true + safe-update: true + identity: MYSQL +pagehelper: + auto-dialect: true + helper-dialect: mysql + reasonable: true + params: count=countSql \ No newline at end of file diff --git a/spring-boot-demo-task-quartz/src/main/resources/mappers/JobMapper.xml b/spring-boot-demo-task-quartz/src/main/resources/mappers/JobMapper.xml new file mode 100644 index 0000000..a6654cf --- /dev/null +++ b/spring-boot-demo-task-quartz/src/main/resources/mappers/JobMapper.xml @@ -0,0 +1,23 @@ + + + + + + \ No newline at end of file