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

}
相关推荐
Dreamer-'2 分钟前
Spring Boot + RabbitMQ 实现导出任务异步处理
spring boot·rabbitmq·java-rabbitmq
q***547514 分钟前
springboot之集成Elasticsearch
spring boot·后端·elasticsearch
未若君雅裁21 分钟前
JVM基础总结
java·jvm·java-ee
q***25124 分钟前
Spring Boot 中使用 @Transactional 注解配置事务管理
数据库·spring boot·sql
星释26 分钟前
Rust 练习册 66:密码方块与文本加密
java·前端·rust
q***318932 分钟前
Spring Boot 实战篇(四):实现用户登录与注册功能
java·spring boot·后端
专注于大数据技术栈43 分钟前
java学习--==和equals
java·python·学习
哥哥还在IT中44 分钟前
缓存架构设计模式:Cache-Aside, Read-Through/Write-Through详解
spring boot·spring·缓存
低调波1 小时前
springboot实现批量下载
windows·spring boot·后端
鲸沉梦落1 小时前
JVM类加载
java·jvm