From 9b1a432440b95a61d29647e7261557e49b65937d Mon Sep 17 00:00:00 2001 From: xyiege Date: Fri, 15 Jul 2022 22:17:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=AE=9A=E6=97=B6=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/chjyj/szwh/configure/QuartzConfig.java | 4 +- .../szwh/controller/QuartzController.java | 2 +- .../chjyj/szwh/mapper/CronTriggerMapper.java | 4 +- .../cn/chjyj/szwh/mapper/TriggerMapper.java | 7 +- src/main/resources/application.properties | 8 +- .../mapper/szwh/CronTriggerMapper.xml | 142 +++---- .../resources/mapper/szwh/JobDetailMapper.xml | 40 +- .../resources/mapper/szwh/TriggerMapper.xml | 374 +++++++++--------- src/main/resources/quartz.properties | 17 +- 9 files changed, 306 insertions(+), 292 deletions(-) diff --git a/src/main/java/cn/chjyj/szwh/configure/QuartzConfig.java b/src/main/java/cn/chjyj/szwh/configure/QuartzConfig.java index 7fb7573..460c379 100644 --- a/src/main/java/cn/chjyj/szwh/configure/QuartzConfig.java +++ b/src/main/java/cn/chjyj/szwh/configure/QuartzConfig.java @@ -54,6 +54,8 @@ public class QuartzConfig implements SchedulerFactoryBeanCustomizer { @Override public void customize(SchedulerFactoryBean schedulerFactoryBean) { - + schedulerFactoryBean.setStartupDelay(2); + schedulerFactoryBean.setAutoStartup(true); + schedulerFactoryBean.setOverwriteExistingJobs(true); } } diff --git a/src/main/java/cn/chjyj/szwh/controller/QuartzController.java b/src/main/java/cn/chjyj/szwh/controller/QuartzController.java index 635e51d..0bba172 100644 --- a/src/main/java/cn/chjyj/szwh/controller/QuartzController.java +++ b/src/main/java/cn/chjyj/szwh/controller/QuartzController.java @@ -161,7 +161,7 @@ public class QuartzController { JSONObject jsonObject = new JSONObject(); PageInfo pageInfo = quartzService.getJobAndTriggerDetails(pageNum, pageSize); Map map = new HashMap<>(); - if (!StringUtils.isEmpty(pageInfo.getTotal())) { + if (pageInfo!=null) { map.put("JobAndTrigger", pageInfo); map.put("number", pageInfo.getTotal()); jsonObject.put("code",200); diff --git a/src/main/java/cn/chjyj/szwh/mapper/CronTriggerMapper.java b/src/main/java/cn/chjyj/szwh/mapper/CronTriggerMapper.java index 5334773..a4386ee 100644 --- a/src/main/java/cn/chjyj/szwh/mapper/CronTriggerMapper.java +++ b/src/main/java/cn/chjyj/szwh/mapper/CronTriggerMapper.java @@ -1,7 +1,7 @@ package cn.chjyj.szwh.mapper; -import org.example.pojo.CronTrigger; -import org.example.pojo.CronTriggerKey; +import cn.chjyj.szwh.bean.CronTrigger; +import cn.chjyj.szwh.bean.CronTriggerKey; public interface CronTriggerMapper { int deleteByPrimaryKey(CronTriggerKey key); diff --git a/src/main/java/cn/chjyj/szwh/mapper/TriggerMapper.java b/src/main/java/cn/chjyj/szwh/mapper/TriggerMapper.java index beb9e36..66f6a0e 100644 --- a/src/main/java/cn/chjyj/szwh/mapper/TriggerMapper.java +++ b/src/main/java/cn/chjyj/szwh/mapper/TriggerMapper.java @@ -1,8 +1,11 @@ package cn.chjyj.szwh.mapper; -import org.example.pojo.Trigger; -import org.example.pojo.TriggerKey; +import cn.chjyj.szwh.bean.Trigger; +import cn.chjyj.szwh.bean.TriggerKey; +import org.springframework.stereotype.Component; + +@Component public interface TriggerMapper { int deleteByPrimaryKey(TriggerKey key); diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index f241934..3c7b714 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -20,10 +20,8 @@ spring.redis.jedis.pool.max-active=8 spring.redis.jedis.pool.max-wait=-1 # 存放在数据库 -spring.quartz.job-store-type=jdbc +#spring.quartz.job-store-type=jdbc # 是否等待任务执行完毕后,容器才会关闭 -spring.quartz.wait-for-jobs-to-complete-on-shutdown=true +#spring.quartz.wait-for-jobs-to-complete-on-shutdown=true # 容器名称 -spring.quartz.scheduler-name=SzwhScheduler -spring.quartz.properties=classpath:quatz.properties -spring.quartz \ No newline at end of file +#spring.quartz.scheduler-name=SzwhScheduler diff --git a/src/main/resources/mapper/szwh/CronTriggerMapper.xml b/src/main/resources/mapper/szwh/CronTriggerMapper.xml index e7c274f..39543d9 100644 --- a/src/main/resources/mapper/szwh/CronTriggerMapper.xml +++ b/src/main/resources/mapper/szwh/CronTriggerMapper.xml @@ -1,88 +1,88 @@ - - - - - - - - - + + + + + + + + + SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP, CRON_EXPRESSION, TIME_ZONE_ID - - + + delete from qrtz_cron_triggers where SCHED_NAME = #{schedName,jdbcType=VARCHAR} and TRIGGER_NAME = #{triggerName,jdbcType=VARCHAR} and TRIGGER_GROUP = #{triggerGroup,jdbcType=VARCHAR} - + insert into qrtz_cron_triggers (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP, CRON_EXPRESSION, TIME_ZONE_ID) values (#{schedName,jdbcType=VARCHAR}, #{triggerName,jdbcType=VARCHAR}, #{triggerGroup,jdbcType=VARCHAR}, #{cronExpression,jdbcType=VARCHAR}, #{timeZoneId,jdbcType=VARCHAR}) - - insert into qrtz_cron_triggers - - - SCHED_NAME, - - - TRIGGER_NAME, - - - TRIGGER_GROUP, - - - CRON_EXPRESSION, - - - TIME_ZONE_ID, - - - - - #{schedName,jdbcType=VARCHAR}, - - - #{triggerName,jdbcType=VARCHAR}, - - - #{triggerGroup,jdbcType=VARCHAR}, - - - #{cronExpression,jdbcType=VARCHAR}, - - - #{timeZoneId,jdbcType=VARCHAR}, - - - - - update qrtz_cron_triggers - - - CRON_EXPRESSION = #{cronExpression,jdbcType=VARCHAR}, - - - TIME_ZONE_ID = #{timeZoneId,jdbcType=VARCHAR}, - - - where SCHED_NAME = #{schedName,jdbcType=VARCHAR} - and TRIGGER_NAME = #{triggerName,jdbcType=VARCHAR} - and TRIGGER_GROUP = #{triggerGroup,jdbcType=VARCHAR} - - + + insert into qrtz_cron_triggers + + + SCHED_NAME, + + + TRIGGER_NAME, + + + TRIGGER_GROUP, + + + CRON_EXPRESSION, + + + TIME_ZONE_ID, + + + + + #{schedName,jdbcType=VARCHAR}, + + + #{triggerName,jdbcType=VARCHAR}, + + + #{triggerGroup,jdbcType=VARCHAR}, + + + #{cronExpression,jdbcType=VARCHAR}, + + + #{timeZoneId,jdbcType=VARCHAR}, + + + + + update qrtz_cron_triggers + + + CRON_EXPRESSION = #{cronExpression,jdbcType=VARCHAR}, + + + TIME_ZONE_ID = #{timeZoneId,jdbcType=VARCHAR}, + + + where SCHED_NAME = #{schedName,jdbcType=VARCHAR} + and TRIGGER_NAME = #{triggerName,jdbcType=VARCHAR} + and TRIGGER_GROUP = #{triggerGroup,jdbcType=VARCHAR} + + update qrtz_cron_triggers set CRON_EXPRESSION = #{cronExpression,jdbcType=VARCHAR}, TIME_ZONE_ID = #{timeZoneId,jdbcType=VARCHAR} diff --git a/src/main/resources/mapper/szwh/JobDetailMapper.xml b/src/main/resources/mapper/szwh/JobDetailMapper.xml index f0b220f..1ea50d5 100644 --- a/src/main/resources/mapper/szwh/JobDetailMapper.xml +++ b/src/main/resources/mapper/szwh/JobDetailMapper.xml @@ -1,7 +1,7 @@ - - + + @@ -12,7 +12,7 @@ - + @@ -24,7 +24,7 @@ JOB_DATA - SELECT DISTINCT qrtz_job_details.JOB_NAME, qrtz_job_details.JOB_GROUP, @@ -42,7 +42,7 @@ AND qrtz_triggers.TRIGGER_GROUP = qrtz_cron_triggers.TRIGGER_GROUP - select , @@ -52,25 +52,33 @@ and JOB_NAME = #{jobName,jdbcType=VARCHAR} and JOB_GROUP = #{jobGroup,jdbcType=VARCHAR} - + + delete from qrtz_job_details where SCHED_NAME = #{schedName,jdbcType=VARCHAR} and JOB_NAME = #{jobName,jdbcType=VARCHAR} and JOB_GROUP = #{jobGroup,jdbcType=VARCHAR} - + + insert into qrtz_job_details (SCHED_NAME, JOB_NAME, JOB_GROUP, DESCRIPTION, JOB_CLASS_NAME, IS_DURABLE, - IS_NONCONCURRENT, IS_UPDATE_DATA, REQUESTS_RECOVERY, + IS_NONCONCURRENT, + IS_UPDATE_DATA, + REQUESTS_RECOVERY, JOB_DATA) - values (#{schedName,jdbcType=VARCHAR}, #{jobName,jdbcType=VARCHAR}, #{jobGroup,jdbcType=VARCHAR}, - #{description,jdbcType=VARCHAR}, #{jobClassName,jdbcType=VARCHAR}, #{isDurable,jdbcType=VARCHAR}, - #{isNonconcurrent,jdbcType=VARCHAR}, #{isUpdateData,jdbcType=VARCHAR}, + values (#{schedName,jdbcType=VARCHAR}, #{jobName,jdbcType=VARCHAR}, + #{jobGroup,jdbcType=VARCHAR}, + #{description,jdbcType=VARCHAR}, #{jobClassName,jdbcType=VARCHAR}, + #{isDurable,jdbcType=VARCHAR}, + #{isNonconcurrent,jdbcType=VARCHAR}, + #{isUpdateData,jdbcType=VARCHAR}, #{requestsRecovery,jdbcType=VARCHAR}, #{jobData,jdbcType=LONGVARBINARY}) - + + insert into qrtz_job_details @@ -137,7 +145,7 @@ - + update qrtz_job_details @@ -166,7 +174,8 @@ and JOB_NAME = #{jobName,jdbcType=VARCHAR} and JOB_GROUP = #{jobGroup,jdbcType=VARCHAR} - + + update qrtz_job_details set DESCRIPTION = #{description,jdbcType=VARCHAR}, JOB_CLASS_NAME = #{jobClassName,jdbcType=VARCHAR}, @@ -179,7 +188,8 @@ and JOB_NAME = #{jobName,jdbcType=VARCHAR} and JOB_GROUP = #{jobGroup,jdbcType=VARCHAR} - + + update qrtz_job_details set DESCRIPTION = #{description,jdbcType=VARCHAR}, JOB_CLASS_NAME = #{jobClassName,jdbcType=VARCHAR}, diff --git a/src/main/resources/mapper/szwh/TriggerMapper.xml b/src/main/resources/mapper/szwh/TriggerMapper.xml index 203f11f..61d0605 100644 --- a/src/main/resources/mapper/szwh/TriggerMapper.xml +++ b/src/main/resources/mapper/szwh/TriggerMapper.xml @@ -1,51 +1,51 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP, JOB_NAME, JOB_GROUP, DESCRIPTION, NEXT_FIRE_TIME, PREV_FIRE_TIME, PRIORITY, TRIGGER_STATE, TRIGGER_TYPE, START_TIME, END_TIME, CALENDAR_NAME, MISFIRE_INSTR - + JOB_DATA - - + + delete from qrtz_triggers where SCHED_NAME = #{schedName,jdbcType=VARCHAR} and TRIGGER_NAME = #{triggerName,jdbcType=VARCHAR} and TRIGGER_GROUP = #{triggerGroup,jdbcType=VARCHAR} - + insert into qrtz_triggers (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP, JOB_NAME, JOB_GROUP, DESCRIPTION, NEXT_FIRE_TIME, PREV_FIRE_TIME, PRIORITY, @@ -59,157 +59,157 @@ #{endTime,jdbcType=BIGINT}, #{calendarName,jdbcType=VARCHAR}, #{misfireInstr,jdbcType=SMALLINT}, #{jobData,jdbcType=LONGVARBINARY}) - - insert into qrtz_triggers - - - SCHED_NAME, - - - TRIGGER_NAME, - - - TRIGGER_GROUP, - - - JOB_NAME, - - - JOB_GROUP, - - - DESCRIPTION, - - - NEXT_FIRE_TIME, - - - PREV_FIRE_TIME, - - - PRIORITY, - - - TRIGGER_STATE, - - - TRIGGER_TYPE, - - - START_TIME, - - - END_TIME, - - - CALENDAR_NAME, - - - MISFIRE_INSTR, - - - JOB_DATA, - - - - - #{schedName,jdbcType=VARCHAR}, - - - #{triggerName,jdbcType=VARCHAR}, - - - #{triggerGroup,jdbcType=VARCHAR}, - - - #{jobName,jdbcType=VARCHAR}, - - - #{jobGroup,jdbcType=VARCHAR}, - - - #{description,jdbcType=VARCHAR}, - - - #{nextFireTime,jdbcType=BIGINT}, - - - #{prevFireTime,jdbcType=BIGINT}, - - - #{priority,jdbcType=INTEGER}, - - - #{triggerState,jdbcType=VARCHAR}, - - - #{triggerType,jdbcType=VARCHAR}, - - - #{startTime,jdbcType=BIGINT}, - - - #{endTime,jdbcType=BIGINT}, - - - #{calendarName,jdbcType=VARCHAR}, - - - #{misfireInstr,jdbcType=SMALLINT}, - - - #{jobData,jdbcType=LONGVARBINARY}, - - - - - update qrtz_triggers - - - JOB_NAME = #{jobName,jdbcType=VARCHAR}, - - - JOB_GROUP = #{jobGroup,jdbcType=VARCHAR}, - - - DESCRIPTION = #{description,jdbcType=VARCHAR}, - - - NEXT_FIRE_TIME = #{nextFireTime,jdbcType=BIGINT}, - - - PREV_FIRE_TIME = #{prevFireTime,jdbcType=BIGINT}, - - - PRIORITY = #{priority,jdbcType=INTEGER}, - - - TRIGGER_STATE = #{triggerState,jdbcType=VARCHAR}, - - - TRIGGER_TYPE = #{triggerType,jdbcType=VARCHAR}, - - - START_TIME = #{startTime,jdbcType=BIGINT}, - - - END_TIME = #{endTime,jdbcType=BIGINT}, - - - CALENDAR_NAME = #{calendarName,jdbcType=VARCHAR}, - - - MISFIRE_INSTR = #{misfireInstr,jdbcType=SMALLINT}, - - - JOB_DATA = #{jobData,jdbcType=LONGVARBINARY}, - - - where SCHED_NAME = #{schedName,jdbcType=VARCHAR} - and TRIGGER_NAME = #{triggerName,jdbcType=VARCHAR} - and TRIGGER_GROUP = #{triggerGroup,jdbcType=VARCHAR} - - + + insert into qrtz_triggers + + + SCHED_NAME, + + + TRIGGER_NAME, + + + TRIGGER_GROUP, + + + JOB_NAME, + + + JOB_GROUP, + + + DESCRIPTION, + + + NEXT_FIRE_TIME, + + + PREV_FIRE_TIME, + + + PRIORITY, + + + TRIGGER_STATE, + + + TRIGGER_TYPE, + + + START_TIME, + + + END_TIME, + + + CALENDAR_NAME, + + + MISFIRE_INSTR, + + + JOB_DATA, + + + + + #{schedName,jdbcType=VARCHAR}, + + + #{triggerName,jdbcType=VARCHAR}, + + + #{triggerGroup,jdbcType=VARCHAR}, + + + #{jobName,jdbcType=VARCHAR}, + + + #{jobGroup,jdbcType=VARCHAR}, + + + #{description,jdbcType=VARCHAR}, + + + #{nextFireTime,jdbcType=BIGINT}, + + + #{prevFireTime,jdbcType=BIGINT}, + + + #{priority,jdbcType=INTEGER}, + + + #{triggerState,jdbcType=VARCHAR}, + + + #{triggerType,jdbcType=VARCHAR}, + + + #{startTime,jdbcType=BIGINT}, + + + #{endTime,jdbcType=BIGINT}, + + + #{calendarName,jdbcType=VARCHAR}, + + + #{misfireInstr,jdbcType=SMALLINT}, + + + #{jobData,jdbcType=LONGVARBINARY}, + + + + + update qrtz_triggers + + + JOB_NAME = #{jobName,jdbcType=VARCHAR}, + + + JOB_GROUP = #{jobGroup,jdbcType=VARCHAR}, + + + DESCRIPTION = #{description,jdbcType=VARCHAR}, + + + NEXT_FIRE_TIME = #{nextFireTime,jdbcType=BIGINT}, + + + PREV_FIRE_TIME = #{prevFireTime,jdbcType=BIGINT}, + + + PRIORITY = #{priority,jdbcType=INTEGER}, + + + TRIGGER_STATE = #{triggerState,jdbcType=VARCHAR}, + + + TRIGGER_TYPE = #{triggerType,jdbcType=VARCHAR}, + + + START_TIME = #{startTime,jdbcType=BIGINT}, + + + END_TIME = #{endTime,jdbcType=BIGINT}, + + + CALENDAR_NAME = #{calendarName,jdbcType=VARCHAR}, + + + MISFIRE_INSTR = #{misfireInstr,jdbcType=SMALLINT}, + + + JOB_DATA = #{jobData,jdbcType=LONGVARBINARY}, + + + where SCHED_NAME = #{schedName,jdbcType=VARCHAR} + and TRIGGER_NAME = #{triggerName,jdbcType=VARCHAR} + and TRIGGER_GROUP = #{triggerGroup,jdbcType=VARCHAR} + + update qrtz_triggers set JOB_NAME = #{jobName,jdbcType=VARCHAR}, JOB_GROUP = #{jobGroup,jdbcType=VARCHAR}, @@ -228,7 +228,7 @@ and TRIGGER_NAME = #{triggerName,jdbcType=VARCHAR} and TRIGGER_GROUP = #{triggerGroup,jdbcType=VARCHAR} - + update qrtz_triggers set JOB_NAME = #{jobName,jdbcType=VARCHAR}, JOB_GROUP = #{jobGroup,jdbcType=VARCHAR}, diff --git a/src/main/resources/quartz.properties b/src/main/resources/quartz.properties index e83029b..34ab77e 100644 --- a/src/main/resources/quartz.properties +++ b/src/main/resources/quartz.properties @@ -2,7 +2,7 @@ org.quartz.scheduler.instanceId=AUTO -org.quartz.scheduler.instanceName=DefaultQuartzScheduler +org.quartz.scheduler.instanceName=SzwhScheduler #如果您希望Quartz Scheduler通过RMI作为服务器导出本身,则将“rmi.export”标志设置为true #在同一个配置文件中为'org.quartz.scheduler.rmi.export'和'org.quartz.scheduler.rmi.proxy'指定一个'true'值是没有意义的,如果你这样做'export'选项将被忽略 org.quartz.scheduler.rmi.export=false @@ -39,15 +39,16 @@ org.quartz.jobStore.useProperties=true #表前缀 org.quartz.jobStore.tablePrefix=QRTZ_ #数据源别名,自定义 -org.quartz.jobStore.dataSource=qzDS +org.quartz.jobStore.dataSource=datasoure +#org.quartz.jobStore.dataSource=qzDS #使用阿里的druid作为数据库连接池 -org.quartz.dataSource.qzDS.connectionProvider.class=org.example.config.DruidPoolingconnectionProvider -org.quartz.dataSource.qzDS.URL=jdbc:mysql://127.0.0.1:3306/test_quartz?characterEncoding=utf8&useSSL=false&autoReconnect=true&serverTimezone=UTC -org.quartz.dataSource.qzDS.user=root -org.quartz.dataSource.qzDS.password=123456 -org.quartz.dataSource.qzDS.driver=com.mysql.jdbc.Driver -org.quartz.dataSource.qzDS.maxConnections=10 +#org.quartz.dataSource.qzDS.connectionProvider.class=org.example.config.DruidPoolingconnectionProvider +#org.quartz.dataSource.qzDS.URL=jdbc:mysql://127.0.0.1:3306/test_quartz?characterEncoding=utf8&useSSL=false&autoReconnect=true&serverTimezone=UTC +#org.quartz.dataSource.qzDS.user=root +#org.quartz.dataSource.qzDS.password=123456 +#org.quartz.dataSource.qzDS.driver=com.mysql.jdbc.Driver +#org.quartz.dataSource.qzDS.maxConnections=10 #设置为“true”以打开群集功能。如果您有多个Quartz实例使用同一组数据库表,则此属性必须设置为“true”,否则您将遇到破坏 #org.quartz.jobStore.isClustered=false