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

}
相关推荐
云烟成雨TD6 小时前
Spring AI Alibaba 1.x 系列【6】ReactAgent 同步执行 & 流式执行
java·人工智能·spring
于慨6 小时前
Lambda 表达式、方法引用(Method Reference)语法
java·前端·servlet
swg3213216 小时前
Spring Boot 3.X Oauth2 认证服务与资源服务
java·spring boot·后端
gelald6 小时前
SpringBoot - 自动配置原理
java·spring boot·后端
@yanyu6666 小时前
07-引入element布局及spring boot完善后端
javascript·vue.js·spring boot
殷紫川6 小时前
深入理解 AQS:从架构到实现,解锁 Java 并发编程的核心密钥
java
一轮弯弯的明月6 小时前
贝尔数求集合划分方案总数
java·笔记·蓝桥杯·学习心得
chenjingming6666 小时前
jmeter线程组设置以及串行和并行设置
java·开发语言·jmeter
殷紫川6 小时前
深入拆解 Java volatile:从内存屏障到无锁编程的实战指南
java
eddieHoo6 小时前
查看 Tomcat 的堆内存参数
java·tomcat