From d5824d0ec98f53e4158d5ad81460b37f867b12f4 Mon Sep 17 00:00:00 2001 From: xyiege Date: Sat, 16 Jul 2022 00:03:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E7=BB=86=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 +- src/main/java/cn/chjyj/szwh/job/HelloJob.java | 6 +- src/main/java/cn/chjyj/szwh/job/SzwhJob.java | 20 ++++++ src/main/resources/application.properties | 7 ++- .../resources/mapper/szwh/JobDetailMapper.xml | 47 +++++++------- .../resources/mapper/szwh/TriggerMapper.xml | 18 +++--- .../szwh/mapper/JobDetailMapperTest.java | 62 +++++++++++++++++++ 7 files changed, 132 insertions(+), 32 deletions(-) create mode 100644 src/main/java/cn/chjyj/szwh/job/SzwhJob.java create mode 100644 src/test/java/cn/chjyj/szwh/mapper/JobDetailMapperTest.java diff --git a/README.md b/README.md index c40f890..679c155 100644 --- a/README.md +++ b/README.md @@ -55,4 +55,6 @@ eyJhbGciOiJIUzUxMiJ9.eyJhdWQiOiJCRDg0REQ0MkE3MjM0QjA1QjBDNUQxMTYxNjEzMkFDNCIsImp 16、[SpringBoot整合Quartz](https://blog.csdn.net/weixin_38192427/article/details/121111677) -17、[Springboot整合Quartz实现动态定时任务](https://segmentfault.com/a/1190000016554033) \ No newline at end of file +17、[Springboot整合Quartz实现动态定时任务](https://segmentfault.com/a/1190000016554033) + +18、[Quartz定时任务2.3版本数据库表字段说明](https://blog.csdn.net/qq_30859353/article/details/120533838) \ No newline at end of file diff --git a/src/main/java/cn/chjyj/szwh/job/HelloJob.java b/src/main/java/cn/chjyj/szwh/job/HelloJob.java index a5db62d..bef5c93 100644 --- a/src/main/java/cn/chjyj/szwh/job/HelloJob.java +++ b/src/main/java/cn/chjyj/szwh/job/HelloJob.java @@ -10,6 +10,8 @@ import org.quartz.Job; import org.quartz.JobExecutionContext; import org.springframework.beans.factory.annotation.Autowired; +import java.text.SimpleDateFormat; + /** *@Author: CJ *@Date: 2021-11-2 11:33 @@ -24,6 +26,8 @@ public class HelloJob implements Job { //QuartzService quartzService = (QuartzService) SpringUtil.getBean("quartzServiceImpl"); PageInfo jobAndTriggerDetails = quartzService.getJobAndTriggerDetails(1, 10); log.info("任务列表总数为:" + jobAndTriggerDetails.getTotal()); - log.info("Hello Job执行时间: " + System.currentTimeMillis()); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); + String tss =sdf.format(System.currentTimeMillis()); + log.info("Hello Job执行时间: " + tss); } } diff --git a/src/main/java/cn/chjyj/szwh/job/SzwhJob.java b/src/main/java/cn/chjyj/szwh/job/SzwhJob.java new file mode 100644 index 0000000..1b255ff --- /dev/null +++ b/src/main/java/cn/chjyj/szwh/job/SzwhJob.java @@ -0,0 +1,20 @@ +package cn.chjyj.szwh.job; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.quartz.Job; +import org.quartz.JobDataMap; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; + +public class SzwhJob implements Job { + private static Log log = LogFactory.getLog(SzwhJob.class); + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + // + JobDataMap data = jobExecutionContext.getTrigger().getJobDataMap(); + String invokeParam = (String) data.get("invokeParam"); + //在这里实现业务逻辑 + log.info("自定义任务 szwhjob"); + } +} \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 3c7b714..67d02ce 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -24,4 +24,9 @@ spring.redis.jedis.pool.max-wait=-1 # 是否等待任务执行完毕后,容器才会关闭 #spring.quartz.wait-for-jobs-to-complete-on-shutdown=true # 容器名称 -#spring.quartz.scheduler-name=SzwhScheduler +spring.quartz.scheduler-name=SzwhScheduler +# +org.quartz.simpl.SimpleThreadPool=10 +# +#org.quartz.simpl.RAMJobStore +org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore diff --git a/src/main/resources/mapper/szwh/JobDetailMapper.xml b/src/main/resources/mapper/szwh/JobDetailMapper.xml index 1ea50d5..c7d8e66 100644 --- a/src/main/resources/mapper/szwh/JobDetailMapper.xml +++ b/src/main/resources/mapper/szwh/JobDetailMapper.xml @@ -16,30 +16,32 @@ - SCHED_NAME - , JOB_NAME, JOB_GROUP, DESCRIPTION, JOB_CLASS_NAME, IS_DURABLE, IS_NONCONCURRENT, - IS_UPDATE_DATA, REQUESTS_RECOVERY + SCHED_NAME, JOB_NAME, JOB_GROUP, DESCRIPTION, JOB_CLASS_NAME, IS_DURABLE, + IS_NONCONCURRENT,IS_UPDATE_DATA, REQUESTS_RECOVERY + JOB_DATA + QRTZ_JOB_DETAILS + select , - from qrtz_triggers + from where SCHED_NAME = #{schedName,jdbcType=VARCHAR} and TRIGGER_NAME = #{triggerName,jdbcType=VARCHAR} and TRIGGER_GROUP = #{triggerGroup,jdbcType=VARCHAR} - delete from qrtz_triggers + delete from 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, + insert into (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP, JOB_NAME, JOB_GROUP, DESCRIPTION, NEXT_FIRE_TIME, PREV_FIRE_TIME, PRIORITY, TRIGGER_STATE, TRIGGER_TYPE, START_TIME, @@ -60,7 +64,7 @@ #{jobData,jdbcType=LONGVARBINARY}) - insert into qrtz_triggers + insert into SCHED_NAME, @@ -163,7 +167,7 @@ - update qrtz_triggers + update JOB_NAME = #{jobName,jdbcType=VARCHAR}, @@ -210,7 +214,7 @@ and TRIGGER_GROUP = #{triggerGroup,jdbcType=VARCHAR} - update qrtz_triggers + update set JOB_NAME = #{jobName,jdbcType=VARCHAR}, JOB_GROUP = #{jobGroup,jdbcType=VARCHAR}, DESCRIPTION = #{description,jdbcType=VARCHAR}, @@ -229,7 +233,7 @@ and TRIGGER_GROUP = #{triggerGroup,jdbcType=VARCHAR} - update qrtz_triggers + update set JOB_NAME = #{jobName,jdbcType=VARCHAR}, JOB_GROUP = #{jobGroup,jdbcType=VARCHAR}, DESCRIPTION = #{description,jdbcType=VARCHAR}, diff --git a/src/test/java/cn/chjyj/szwh/mapper/JobDetailMapperTest.java b/src/test/java/cn/chjyj/szwh/mapper/JobDetailMapperTest.java new file mode 100644 index 0000000..c38c8b2 --- /dev/null +++ b/src/test/java/cn/chjyj/szwh/mapper/JobDetailMapperTest.java @@ -0,0 +1,62 @@ +package cn.chjyj.szwh.mapper; + +import cn.chjyj.szwh.bean.JobDetail; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.junit.Assert.*; + +@SpringBootTest +@RunWith(SpringRunner.class) +public class JobDetailMapperTest { + @Autowired + private JobDetailMapper jobDetailMapper; + + @Test + public void deleteByPrimaryKey() { + } + + @Test + public void insert() { + JobDetail jobDetail= new JobDetail(); + jobDetail.setJobClassName("szwhJob"); + jobDetail.setSchedName("szwhjob"); + jobDetail.setJobName("szwhjob"); + jobDetail.setJobGroup("szwh"); + // 是否持久化 + jobDetail.setIsDurable("1"); + jobDetail.setIsNonconcurrent("1"); + jobDetail.setIsUpdateData("0"); + jobDetail.setRequestsRecovery("1"); + jobDetail.setJobData(null); + + jobDetailMapper.insert(jobDetail); + } + + @Test + public void insertSelective() { + } + + @Test + public void selectByPrimaryKey() { + } + + @Test + public void updateByPrimaryKeySelective() { + } + + @Test + public void updateByPrimaryKeyWithBLOBs() { + } + + @Test + public void updateByPrimaryKey() { + } + + @Test + public void getJobAndTriggerDetails() { + } +} \ No newline at end of file