导包

MAVEN

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-quartz</artifactId>
</dependency>

gradle

implementation 'org.springframework.boot:spring-boot-starter-quartz'

配置文件

spring:quartz:#相关属性配置properties:org:quartz:scheduler:instanceName: clusteredSchedulerinstanceId: AUTOjobStore:class: org.quartz.impl.jdbcjobstore.JobStoreTXdriverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegatetablePrefix: QRTZ_isClustered: trueclusterCheckinInterval: 10000useProperties: falsethreadPool:class: org.quartz.simpl.SimpleThreadPoolthreadCount: 10threadPriority: 5threadsInheritContextClassLoaderOfInitializingThread: false#数据库方式job-store-type: jdbc

mysql数据库表

/*
Navicat MySQL Data TransferTarget Server Type    : MYSQL
Target Server Version : 50725
File Encoding         : 65001Date: 2019-06-29 15:40:40
*/SET FOREIGN_KEY_CHECKS=0;-- ----------------------------
-- Table structure for QRTZ_BLOB_TRIGGERS
-- ----------------------------
DROP TABLE IF EXISTS `QRTZ_BLOB_TRIGGERS`;
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`),KEY `SCHED_NAME` (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),CONSTRAINT `QRTZ_BLOB_TRIGGERS_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Table structure for QRTZ_CALENDARS
-- ----------------------------
DROP TABLE IF EXISTS `QRTZ_CALENDARS`;
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 DEFAULT CHARSET=utf8;-- ----------------------------
-- Table structure for QRTZ_CRON_TRIGGERS
-- ----------------------------
DROP TABLE IF EXISTS `QRTZ_CRON_TRIGGERS`;
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) DEFAULT NULL,PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),CONSTRAINT `QRTZ_CRON_TRIGGERS_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Table structure for QRTZ_FIRED_TRIGGERS
-- ----------------------------
DROP TABLE IF EXISTS `QRTZ_FIRED_TRIGGERS`;
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` int(11) NOT NULL,`STATE` varchar(16) NOT NULL,`JOB_NAME` varchar(200) DEFAULT NULL,`JOB_GROUP` varchar(200) DEFAULT NULL,`IS_NONCONCURRENT` varchar(1) DEFAULT NULL,`REQUESTS_RECOVERY` varchar(1) DEFAULT NULL,PRIMARY KEY (`SCHED_NAME`,`ENTRY_ID`),KEY `IDX_QRTZ_FT_TRIG_INST_NAME` (`SCHED_NAME`,`INSTANCE_NAME`),KEY `IDX_QRTZ_FT_INST_JOB_REQ_RCVRY` (`SCHED_NAME`,`INSTANCE_NAME`,`REQUESTS_RECOVERY`),KEY `IDX_QRTZ_FT_J_G` (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`),KEY `IDX_QRTZ_FT_JG` (`SCHED_NAME`,`JOB_GROUP`),KEY `IDX_QRTZ_FT_T_G` (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),KEY `IDX_QRTZ_FT_TG` (`SCHED_NAME`,`TRIGGER_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Table structure for QRTZ_JOB_DETAILS
-- ----------------------------
DROP TABLE IF EXISTS `QRTZ_JOB_DETAILS`;
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) DEFAULT 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,PRIMARY KEY (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`),KEY `IDX_QRTZ_J_REQ_RECOVERY` (`SCHED_NAME`,`REQUESTS_RECOVERY`),KEY `IDX_QRTZ_J_GRP` (`SCHED_NAME`,`JOB_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Table structure for QRTZ_LOCKS
-- ----------------------------
DROP TABLE IF EXISTS `QRTZ_LOCKS`;
CREATE TABLE `QRTZ_LOCKS` (`SCHED_NAME` varchar(120) NOT NULL,`LOCK_NAME` varchar(40) NOT NULL,PRIMARY KEY (`SCHED_NAME`,`LOCK_NAME`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Table structure for QRTZ_PAUSED_TRIGGER_GRPS
-- ----------------------------
DROP TABLE IF EXISTS `QRTZ_PAUSED_TRIGGER_GRPS`;
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 DEFAULT CHARSET=utf8;-- ----------------------------
-- Table structure for QRTZ_SCHEDULER_STATE
-- ----------------------------
DROP TABLE IF EXISTS `QRTZ_SCHEDULER_STATE`;
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 DEFAULT CHARSET=utf8;-- ----------------------------
-- Table structure for QRTZ_SIMPLE_TRIGGERS
-- ----------------------------
DROP TABLE IF EXISTS `QRTZ_SIMPLE_TRIGGERS`;
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`),CONSTRAINT `QRTZ_SIMPLE_TRIGGERS_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Table structure for QRTZ_SIMPROP_TRIGGERS
-- ----------------------------
DROP TABLE IF EXISTS `QRTZ_SIMPROP_TRIGGERS`;
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) DEFAULT NULL,`STR_PROP_2` varchar(512) DEFAULT NULL,`STR_PROP_3` varchar(512) DEFAULT NULL,`INT_PROP_1` int(11) DEFAULT NULL,`INT_PROP_2` int(11) DEFAULT NULL,`LONG_PROP_1` bigint(20) DEFAULT NULL,`LONG_PROP_2` bigint(20) DEFAULT NULL,`DEC_PROP_1` decimal(13,4) DEFAULT NULL,`DEC_PROP_2` decimal(13,4) DEFAULT NULL,`BOOL_PROP_1` varchar(1) DEFAULT NULL,`BOOL_PROP_2` varchar(1) DEFAULT NULL,PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),CONSTRAINT `QRTZ_SIMPROP_TRIGGERS_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Table structure for QRTZ_TRIGGERS
-- ----------------------------
DROP TABLE IF EXISTS `QRTZ_TRIGGERS`;
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) DEFAULT NULL,`NEXT_FIRE_TIME` bigint(13) DEFAULT NULL,`PREV_FIRE_TIME` bigint(13) DEFAULT NULL,`PRIORITY` int(11) DEFAULT NULL,`TRIGGER_STATE` varchar(16) NOT NULL,`TRIGGER_TYPE` varchar(8) NOT NULL,`START_TIME` bigint(13) NOT NULL,`END_TIME` bigint(13) DEFAULT NULL,`CALENDAR_NAME` varchar(200) DEFAULT NULL,`MISFIRE_INSTR` smallint(2) DEFAULT NULL,`JOB_DATA` blob,PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),KEY `IDX_QRTZ_T_J` (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`),KEY `IDX_QRTZ_T_JG` (`SCHED_NAME`,`JOB_GROUP`),KEY `IDX_QRTZ_T_C` (`SCHED_NAME`,`CALENDAR_NAME`),KEY `IDX_QRTZ_T_G` (`SCHED_NAME`,`TRIGGER_GROUP`),KEY `IDX_QRTZ_T_STATE` (`SCHED_NAME`,`TRIGGER_STATE`),KEY `IDX_QRTZ_T_N_STATE` (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`,`TRIGGER_STATE`),KEY `IDX_QRTZ_T_N_G_STATE` (`SCHED_NAME`,`TRIGGER_GROUP`,`TRIGGER_STATE`),KEY `IDX_QRTZ_T_NEXT_FIRE_TIME` (`SCHED_NAME`,`NEXT_FIRE_TIME`),KEY `IDX_QRTZ_T_NFT_ST` (`SCHED_NAME`,`TRIGGER_STATE`,`NEXT_FIRE_TIME`),KEY `IDX_QRTZ_T_NFT_MISFIRE` (`SCHED_NAME`,`MISFIRE_INSTR`,`NEXT_FIRE_TIME`),KEY `IDX_QRTZ_T_NFT_ST_MISFIRE` (`SCHED_NAME`,`MISFIRE_INSTR`,`NEXT_FIRE_TIME`,`TRIGGER_STATE`),KEY `IDX_QRTZ_T_NFT_ST_MISFIRE_GRP` (`SCHED_NAME`,`MISFIRE_INSTR`,`NEXT_FIRE_TIME`,`TRIGGER_GROUP`,`TRIGGER_STATE`),CONSTRAINT `QRTZ_TRIGGERS_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) REFERENCES `QRTZ_JOB_DETAILS` (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

添加接口

package com.rtsm.alarmtcp.quartz.service;import com.rtsm.alarmtcp.quartz.entity.JobEntity;
import org.quartz.Job;
import org.quartz.JobDataMap;
import org.quartz.SchedulerException;/*** @author EDZ* @date 2019/3/2913:48*/
public interface QuartzManager {void addSimpleJob(JobEntity jobEntity, Class<? extends Job> c, JobDataMap jobDataMap) throws SchedulerException;void addDateJob(JobEntity jobEntity, Class<? extends Job> job, JobDataMap dataMap) throws SchedulerException;void subJob(JobEntity jobEntity);void subJob(String name, String group);void subJobByGroup(String group);void addCronJob(JobEntity jobEntity, Class<? extends Job> c, JobDataMap jobDataMap) throws SchedulerException;String getCorn();
}
package com.rtsm.alarmtcp.quartz.service.impl;import com.rtsm.alarmtcp.quartz.entity.JobEntity;
import com.rtsm.alarmtcp.quartz.service.QuartzManager;
import org.quartz.*;
import org.quartz.impl.matchers.GroupMatcher;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
import org.springframework.stereotype.Component;import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Set;/*** 定时任务管理* @author EDZ* @date 2019/3/2913:51*/
@Component
public class QuartzManagerImpl implements QuartzManager {@Resourceprivate SchedulerFactoryBean factory;/*** jobEntity* @param jobEntity 任务实体* @param job 执行任务* @param dataMap 保存的参数* @throws SchedulerException*/@Overridepublic void addSimpleJob(JobEntity jobEntity, Class<? extends Job> job, JobDataMap dataMap) throws SchedulerException {Scheduler schd = factory.getScheduler();//多少秒之后执行Date startTime = new Date(System.currentTimeMillis()+jobEntity.getDelaySecond()*1000);dataMap.put("jobName",jobEntity.getName());dataMap.put("jobGroup",jobEntity.getJobGroup());JobDetail jobDetail = JobBuilder.newJob(job).withIdentity(jobEntity.getName(),jobEntity.getJobGroup()).setJobData(dataMap).build();Trigger trigger = TriggerBuilder.newTrigger().withIdentity(TriggerKey.triggerKey("trigger"+jobEntity.getName(), "trigger"+jobEntity.getJobGroup())).startAt(startTime).build();//两者组成一个计划任务注册到schedulerif(jobEntity.getStatus()!=0){schd.scheduleJob(jobDetail,trigger);}}/*** @title addDateJob* @description 添加到期执行的任务* @author haifeng.lv* @param: jobEntity 实体类* @param: job 执行类* @param: dataMap 数据* @updateTime 2019/5/14 19:30* @throws*/@Overridepublic void addDateJob(JobEntity jobEntity,Class<? extends Job> job,JobDataMap dataMap) throws SchedulerException {Scheduler schd = factory.getScheduler();// 名称dataMap.put("jobName",jobEntity.getName());// 工作组dataMap.put("jobGroup",jobEntity.getJobGroup());// 工作详情JobDetail jobDetail = JobBuilder.newJob(job).withIdentity(jobEntity.getName(),jobEntity.getJobGroup()).setJobData(dataMap).build();// 设置执行策略Trigger trigger = TriggerBuilder.newTrigger().withIdentity(TriggerKey.triggerKey("trigger"+jobEntity.getName(), "trigger"+jobEntity.getJobGroup()))// 设置开始时间.startAt((Date)dataMap.get("endDate")).build();//两者组成一个计划任务注册到schedulerif(jobEntity.getStatus() != 0){schd.scheduleJob(jobDetail,trigger);}}/*** 移除任务* @param jobEntity*/@Overridepublic void subJob(JobEntity jobEntity) {Scheduler schd=factory.getScheduler();try {schd.deleteJob(JobKey.jobKey(jobEntity.getName(),jobEntity.getJobGroup()));} catch (SchedulerException e) {e.printStackTrace();}}@Overridepublic void subJob(String name, String group) {Scheduler schd=factory.getScheduler();try {schd.deleteJob(JobKey.jobKey(name,group));} catch (SchedulerException e) {e.printStackTrace();}}/*** 根据分组删除定时任务* @param group*/@Overridepublic void subJobByGroup(String group) {try {Scheduler schd=factory.getScheduler();GroupMatcher<JobKey> matcher = GroupMatcher.groupEquals(group);Set<JobKey> jobkeySet = schd.getJobKeys(matcher);List<JobKey> jobkeyList = new ArrayList<JobKey>();jobkeyList.addAll(jobkeySet);schd.deleteJobs(jobkeyList);} catch (SchedulerException e) {e.printStackTrace();}}@Overridepublic void addCronJob(JobEntity jobEntity, Class<? extends Job> job, JobDataMap dataMap) throws SchedulerException {Scheduler schd=factory.getScheduler();//在初始化调度的时候clean一下schd.clear();dataMap.put("jobName",jobEntity.getName());dataMap.put("jobGroup",jobEntity.getJobGroup());JobDetail jobDetail = JobBuilder.newJob(job).withIdentity(jobEntity.getName(),jobEntity.getJobGroup()).setJobData(dataMap).build();Trigger trigger = TriggerBuilder.newTrigger().withIdentity(jobEntity.getName(),jobEntity.getJobGroup()).withSchedule(CronScheduleBuilder.cronSchedule(jobEntity.getCron())//失效后启动不执行错过任务.withMisfireHandlingInstructionDoNothing()).startNow().build();jobEntity.setParameter(dataMap.toString());// jobEntityMapper.insert(jobEntity);//两者组成一个计划任务注册到schedulerif(jobEntity.getStatus()!=0){schd.scheduleJob(jobDetail,trigger);}
//        if(!schd.isShutdown()){
//            schd.start();//启动调度器
//        }}@Overridepublic String getCorn() {return null;}}

添加任务

package com.rtsm.alarmtcp.quartz.job;import lombok.extern.slf4j.Slf4j;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;/*** @author syx* @date 2019/4/416:06*/
@Slf4j
public class TestJob implements Job {@Overridepublic void execute(JobExecutionContext context) throws JobExecutionException {System.out.println("hello world,java");log.info("Hello world,kkkk");}
}
package com.rtsm.alarmtcp.quartz.entity;import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;import java.io.Serializable;/*** <p>* * </p>* time: 2019-03-29* @author EDZ*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class JobEntity implements Serializable {private static final long serialVersionUID = 1L;private String name;private String jobGroup;private String cron;private String parameter;/*** 延时时间*/private Integer delaySecond;/*** job的执行状态,这里我设置为1/0且只有该值为1才会执行该Job*/private Integer status = 1;public JobEntity(String name, String jobGroup, Integer delaySecond, Integer status) {this.name = name;this.jobGroup = jobGroup;this.delaySecond = delaySecond;this.status = status;}public JobEntity() {}
}

测试代码

        JobEntity job = new JobEntity();job.setName("1234");job.setJobGroup("2314");job.setDelaySecond(10);try {quartzManager.addSimpleJob(job,TestJob.class,new JobDataMap());} catch (SchedulerException e) {e.printStackTrace();}

springboot 集成quartz带数据库持久化相关推荐

  1. SpringBoot集成quartz定时调度任务并通过JDBC持久化

    SpringBoot集成quartz定时调度任务并通过JDBC持久化 话不多说上干货 项目pom依赖 配置类 抽象出调度任务实体类 调度执行和调度任务更改工具类 调度配置与执行的代码完毕,下面就是对持 ...

  2. Springboot集成quartz定时任务可视化配置​​​​​​​

    转自我的个人博客:Springboot集成quartz定时任务可视化配置 使用quartz定时任务已经有一段时间了,今天记录一下Springboot 2.x集成Quartz. 1.引入quartz j ...

  3. SpringBoot - 集成Quartz框架:Couldn‘t acquire next trigger: Couldn‘t retrieve trigger: 不良的类型值 long : \x

    写在前面 SpringBoot 集成Quartz框架时,数据保存方式使用PostgreSQL进行数据库持久化. 报错如下: Couldn't acquire next trigger: Couldn' ...

  4. java quartz 动态执行,浅谈SpringBoot集成Quartz动态定时任务

    SpringBoot自带schedule 沿用的springboot少xml配置的优良传统,本身支持表达式等多种定时任务 注意在程序启动的时候加上@EnableScheduling @Schedule ...

  5. SpringBoot集成Quartz(解决@Autowired空指针Null问题即依赖注入的属性为null)

    SpringBoot集成Quartz(解决@Autowired空指针Null问题即依赖注入的属性为null) 参考文章: (1)SpringBoot集成Quartz(解决@Autowired空指针Nu ...

  6. SpringBoot集成Druid和数据库密码加密

    Druid是阿里开发的数据库连接池,通过简单的配置,可以实现数据库的连接,性能特别强大,可以在页面访问,包括监控数据库性能参数,慢SQL统计,当然还包括数据库连接等. 今天主要记录一下SpringBo ...

  7. 达梦DCA之SpringBoot集成达梦数据库

    受"华为.中兴事件"影响,我国科技尤其是上游核心技术受制于人的现状对我国经济发展.社会稳定等都提出了严峻考验.大力发展科技产业,鼓励科技创新,成为当下时不我待的命题.中美贸易战以来 ...

  8. SpringBoot集成Quartz框架

    SpringBoot集成Quartz框架 (一)集成环境: ​ Win10系统 ​ JDK版本:11.0.13 ​ SpringBoot版本:2.3.4.RELEASE ​ Quartz版本:2.3. ...

  9. SpringBoot集成Quartz(定时任务)

    SpringBoot集成Quartz(定时任务)_鱼找水需要时间的博客-CSDN博客_springboot集成quartz

  10. 定时任务:springboot集成Quartz实现多任务多触发的动态管理

    本文主要讲解以下几个方面: 1.定时任务的定义及其常见的模式 2.springboot集成quart实例 3.中途会遇到的一些问题 一.定时任务的定义及其常见的模式 1)定时任务的定义 首先要明白的是 ...

最新文章

  1. 基础 - #pragma pack (n) 设置对齐方式
  2. Openlayers中使用Cluster实现缩放地图时图层聚合与取消聚合
  3. 配置nginx支持php
  4. std::chrono时间库详解
  5. GDG Xian: 假如我是一个浏览器
  6. 区块链 什么是DAPP
  7. 透明flash代码_Animate/FLASH如何制作纵深前进的动画
  8. java设计模式之组合模式
  9. CE修改器基础操作教程
  10. 【原创】STM32低功耗模式及中断唤醒(基于BMI160及RTC)的研究
  11. 物理机能够ping通虚拟机,但是虚拟机无法ping通物理机
  12. css方块跳动且颜色变化,CSS3 波动的方块
  13. PAT 1010 月饼
  14. linux 安装pkg文件,pkgfile (简体中文)
  15. python中文文本信息提取_PyMuPDF提取文本信息
  16. 2020年全年财报稳健高增长,除了赛道利好之外微盟是如何做到的?
  17. matlab中尖号,在Matlab中函數中的一個尖角消除掉
  18. 手机产业未来的发展方向
  19. 如何分别设置Word文档封面、目录、正文页码
  20. 【报错解决】Parameter ‘XXXX‘ not found. Available parameters are [XXXX1, XXXX2]

热门文章

  1. java的path的设置路径_java安装path设置
  2. 【分享360域名批量查询工具】
  3. deepin系统引导_Deepin系统安装教程
  4. Blob转换二进制流下载文件
  5. Word中插入分隔线
  6. Wireshark设置显示报文的时间
  7. js怎样向html中添加内容,使用js向网页中写入html内容
  8. 足以封神的文献下载网站,知道一个你就赚了!
  9. 笔记本Windows7无法连接上家庭wifi,急急急!!!
  10. 关于java Stream流将list集合分组之后与原list的集合的顺序不一致的问题