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

}
相关推荐
柳贯一(逆流河版)1 小时前
Spring 三级缓存:破解循环依赖的底层密码
java·spring·缓存·bean的循环依赖
Q_Q19632884753 小时前
python的电影院座位管理可视化数据分析系统
开发语言·spring boot·python·django·flask·node.js·php
该用户已不存在3 小时前
OpenJDK、Temurin、GraalVM...到底该装哪个?
java·后端
TT哇3 小时前
@[TOC](计算机是如何⼯作的) JavaEE==网站开发
java·redis·java-ee
Tina学编程3 小时前
48Days-Day19 | ISBN号,kotori和迷宫,矩阵最长递增路径
java·算法
青川入梦3 小时前
MyBatis极速通关上篇:Spring Boot环境搭建+用户管理实战
java·开发语言·mybatis
执子手 吹散苍茫茫烟波4 小时前
leetcode415. 字符串相加
java·leetcode·字符串
小韩博4 小时前
网络安全(Java语言)脚本 汇总(二)
java·安全·web安全
萤丰信息4 小时前
技术赋能安全:智慧工地构建城市建设新防线
java·大数据·开发语言·人工智能·智慧城市·智慧工地
带刺的坐椅4 小时前
Java MCP 的鉴权?好简单的啦
java·鉴权·mcp·solon-ai