• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

SpringBoot中使用Quartz管理定时任务的方法

springboot 搞代码 4年前 (2022-01-09) 16次浏览 已收录 0个评论

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

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

一、Quartz 简介

Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵 活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,EJB作业预构 建,JavaMail及其它,支持cron-like表达式等等。

二、开发前戏

1、引入 maven 依赖

<!-- web支持 -->
<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Quartz 定时任务 -->
<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-quartz</artifactId>
</dependency>

这里引入了 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 com.zyxx.common.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;

/**
 * <p>
 * 定时任务信息表
 * </p>
 *
 * @author lizhou
 * @since 2020-07-21
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("sys_quartz")
@ApiModel(value="SysQuartz对象", descriptio<strong style="color:transparent">来源gaodai#ma#com搞@代~码$网</strong>n="定时任务信息表")
public class SysQuartz extends Model<SysQuartz> {

 @ApiModelProperty(value = "主键id")
 @TableId(value = "id", type = IdType.AUTO)
 private Long id;

 @ApiModelProperty(value = "任务类名")
 @TableField("class_name")
 private String className;

 @ApiModelProperty(value = "cron表达式")
 @TableField("cron_expression")
 private String cronExpression;

 @ApiModelProperty(value = "参数")
 @TableField("param")
 private String param;

 @ApiModelProperty(value = "描述")
 @TableField("descript")
 private String descript;

 @ApiModelProperty(value = "启动状态(0--启动1--停止)")
 @TableField("quartz_status")
 private Integer quartzStatus;

 @ApiModelProperty(value = "状态(0--正常1--停用)")
 @TableField("status")
 private Integer status;

 @ApiModelProperty(value = "删除状态(0--未删除1--已删除)")
 @TableField("del_flag")
 @TableLogic
 private Integer delFlag;

 @ApiModelProperty(value = "创建者")
 @TableField("create_user")
 private Long createUser;

 @ApiModelProperty(value = "创建时间")
 @TableField("create_time")
 private String createTime;

 @Override
 protected Serializable pkVal() {
  return this.id;
 }
}

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:SpringBoot中使用Quartz管理定时任务的方法

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址