定时任务处理-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() {
        //数据库相关操作
    }

}
相关推荐
YuTaoShao2 小时前
【LeetCode 热题 100】56. 合并区间——排序+遍历
java·算法·leetcode·职场和发展
程序员张32 小时前
SpringBoot计时一次请求耗时
java·spring boot·后端
llwszx5 小时前
深入理解Java锁原理(一):偏向锁的设计原理与性能优化
java·spring··偏向锁
云泽野5 小时前
【Java|集合类】list遍历的6种方式
java·python·list
二进制person6 小时前
Java SE--方法的使用
java·开发语言·算法
小阳拱白菜7 小时前
java异常学习
java
FrankYoou8 小时前
Jenkins 与 GitLab CI/CD 的核心对比
java·docker
麦兜*8 小时前
Spring Boot启动优化7板斧(延迟初始化、组件扫描精准打击、JVM参数调优):砍掉70%启动时间的魔鬼实践
java·jvm·spring boot·后端·spring·spring cloud·系统架构
KK溜了溜了9 小时前
JAVA-springboot 整合Redis
java·spring boot·redis
大只鹅9 小时前
解决 Spring Boot 对 Elasticsearch 字段没有小驼峰映射的问题
spring boot·后端·elasticsearch