要解决的问题
把多个定时任务的时间规则写死在代码里,当有改动时,需要动代码。代码多、维护成本略高。
解决思路
引入额外的库表,把定时任务配置在库表里,应用启动时再调API配置到Quartz原生表中
额外库表
- 建表
CREATE TABLE `my_job_details` (
`ID` int unsigned NOT NULL AUTO_INCREMENT,
`JOB_NAME` varchar(190) NOT NULL,
`JOB_GROUP` varchar(190) NOT NULL,
`DESCRIPTION` varchar(250) DEFAULT NULL,
`JOB_CLASS_NAME` varchar(250) NOT NULL,
`CRON_EXPRESSION` varchar(120) 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
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8
- 初始化
INSERT INTO testdb.my_job_details