【SpringBoot】廿五、SpringBoot中使用Quartz管理定时任务

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【SpringBoot】廿五、SpringBoot中使用Quartz管理定

时任务

2020-07-21 15:55:47

定时任务在系统中用到的地方很多,例如每晚凌晨的数据备份,每小时获取第三方平台的Token 信息等等,之前我们都是在项目中规定这个定时任务什么时候启动,到时间了便会自己启动,那么我们想要停止这个定时任务的时候,就需要去改动代码,还得启停服务器,这是非常不友好的事情

直至遇见 Quartz,利用图形界面可视化管理定时任务,使得我们对定时任务的管

理更加方便,快捷

一、Quartz 简介

Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和

J2EE应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个

作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,EJB作业预构建,JavaMail及其它,支持cron-like表达式等等。

二、开发前戏

1、引入 maven 依赖

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-quartz

这里引入了 web 的依赖,以及 Quartz 的依赖,其余依赖请根据需求自行引入

2、创建数据表

数据模型:

SQL语句:

drop table if exists sys_quartz;

/*==============================================================*/

/* Table: sys_quartz */

/*==============================================================*/ create table sys_quartz

(

id bigint(20) not null auto_increment comment '主键id',

class_name varchar(32) comment '任务类名',

cron_expression varchar(32) comment 'cron表达式',

param varchar(32) comment '参数',

descript varchar(11) comment '描述',

quartz_status varchar(255) comment '启动状态(0--启动1--停止)', create_time datetime comment '创建时间',

create_user bigint(20) comment '创建人',

status tinyint(1) default 0 comment '状态(0--正常1--停用)',

del_flag tinyint(1) default 0 comment '删除状态(0,正常,1已删除)',

primary key (id)

)

type = InnoDB;

alter table sys_quartz comment '定时任务信息表';

三、开发进行中

1、创建实体类

import com.baomidou.mybatisplus.annotation.*;

import com.baomidou.mybatisplus.extension.activerecord.Model;

import mon.annotation.Dict;

import io.swagger.annotations.ApiModel;

import io.swagger.annotations.ApiModelProperty;

import lombok.Data;

import lombok.EqualsAndHashCode;

import lombok.experimental.Accessors;

import java.io.Serializable;

/**

*

* 定时任务信息表

*

*

* @author lizhou

* @since 2020-07-21

*/

@Data

@EqualsAndHashCode(callSuper = false)

@Accessors(chain = true)

@TableName("sys_quartz")

@ApiModel(value="SysQuartz对象", description="定时任务信息表")

public class SysQuartz extends Model {

@ApiModelProperty(value = "主键id")

@TableId(value = "id", type = IdType.AUTO)

private Long id;

@ApiModelProperty(value = "任务类名")

@TableField("class_name")

private String className;

@ApiModelProperty(value = "cron表达式")

相关文档
最新文档