定时任务处理-Spring Task

目录

[1 前言](#1 前言)

[2 cron表达式](#2 cron表达式)

[2.1 相关概念的介绍](#2.1 相关概念的介绍)

[2.2 举个例子(白雪警告)](#2.2 举个例子(白雪警告))

[2.3 使用网站自动生成](#2.3 使用网站自动生成)

[3 Spring Task的使用](#3 Spring Task的使用)

[3.1 导入依赖坐标](#3.1 导入依赖坐标)

[3.2 开启任务调度](#3.2 开启任务调度)

[3.3 自定义定时任务类](#3.3 自定义定时任务类)


1 前言

当我们需要处理一些定时任务的时候就需要用到我们的Spring Task,接下来我将介绍cron表达式及Spring Task的使用方法。

2 cron表达式

2.1 相关概念的介绍

定义:cron表达式就是一个字符串,通过cron表达式可以定义任务触发的时间,配合SpringTask使用。

规则:分为6或7个域,由空格分隔开

每个域的含义:秒、分钟、小时、日、月、周(星期)、年(可选,默认每年)

注意:日和周(星期)一般不同时指定,避免冲突,因为某个月某日不一定是星期几

常见通配符的含义

①*(所有)

②?(不指定)

③-(从..到..)

2.2 举个例子(白雪警告)

例子1:

周/星期
1 2 3 4 5 ?

cron = "1 2 3 4 5 ?"

含义:每年的5月4日3点2分1秒

例子2:

cron = "23 44 11 22 * ? 2024-2025"

含义:从2024年到2025年,每个月的22日11时44分23秒

2.3 使用网站自动生成

这里有个在线Cron表达式生成器,可以按你的需求自动生成cron表达式,CV工程师你值得拥有。

3 Spring Task的使用

3.1 导入依赖坐标

本来是要导入sring-context的,但是其已经包含在spring-boot包下,所以不需要我们再次导入了。

3.2 开启任务调度

在控制类上添加@EnableScheduling注解用于开启任务调度

java 复制代码
@EnableScheduling    //开启任务调度
public class TestApplication {
    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
    }
}

3.3 自定义定时任务类

定义好定时任务类后它就会按照@Scheduled中的cron表达式所规定的周期自动执行

java 复制代码
@Component
public class MyTask {
    @Scheduled(cron = "0 * * * * ?") // 每分钟执行一次
    //定时处理超时
    public void processTimeOut() {
        //数据库相关操作
    }

}
相关推荐
Theodore_10224 小时前
4 设计模式原则之接口隔离原则
java·开发语言·设计模式·java-ee·接口隔离原则·javaee
冰帝海岸5 小时前
01-spring security认证笔记
java·笔记·spring
世间万物皆对象5 小时前
Spring Boot核心概念:日志管理
java·spring boot·单元测试
没书读了6 小时前
ssm框架-spring-spring声明式事务
java·数据库·spring
小二·6 小时前
java基础面试题笔记(基础篇)
java·笔记·python
开心工作室_kaic6 小时前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端
懒洋洋大魔王6 小时前
RocketMQ的使⽤
java·rocketmq·java-rocketmq
武子康6 小时前
Java-06 深入浅出 MyBatis - 一对一模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据仓库·sql·mybatis·springboot·springcloud
qq_17448285757 小时前
springboot基于微信小程序的旧衣回收系统的设计与实现
spring boot·后端·微信小程序
转世成为计算机大神7 小时前
易考八股文之Java中的设计模式?
java·开发语言·设计模式