首页 > 其他分享 >Spring Schedule定时任务看这一篇就够了

Spring Schedule定时任务看这一篇就够了

时间:2024-03-15 09:15:14浏览次数:26  
标签:Schedule spring boot 就够 Spring 定时 starter

Spring Schedule 是指Spring框架提供的定时任务调度功能。Spring Schedule允许开发者在应用程序中便捷地创建和管理定时任务,比如按固定频率执行某些操作,或者按照cron表达式设定复杂的调度规则。

Spring Schedule 功能的依赖直接或间接地包含在 spring-boot-starter 家族中的相关起步依赖模块中,特别是对于定时任务的支持,Spring Boot 默认并未在基础的 spring-boot-starter 中直接提供,而是包含在 spring-boot-starter-web 或者 spring-boot-starter-data-jpa 等起步依赖中并不是必需的。然而,为了支持定时任务,你需要引入 spring-boot-starter-quartz(如果打算使用Quartz作为定时任务调度器)或者只需要 spring-boot-starter 和 spring-boot-starter-data-solr(内含对Scheduled任务的支持)。

SpringBoot使用Spring Schedule不用额外的引入其他依赖只要有依赖就可以了

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>

Spring Schedule核心概念与使用

1. Cron表达式

Cron表达式是用于配置定时任务执行时间的一种格式,它通常包含以下七个字段(部分字段非必填):

秒(Seconds)

分钟(Minutes)

小时(Hours)

月份中的日期(Day-of-Month)

月份(Month)

星期中的哪一天(Day-of-Week)

年份(Year)(这个字段在大部分场景下是可选的,Spring Schedule默认不使用)

示例:0 0 0 * * MON-FRI 表示每周一到周五的每天凌晨0点执行。

Cron表达式在线工具:https://www.pppet.net/

2. 使用@EnableScheduling

要在Spring Boot应用中启用定时任务调度功能,需要在某个配置类或@SpringBootApplication标记的启动类上添加@EnableScheduling注解,这样Spring容器就会启动一个后台调度器来检测并执行带有@Scheduled注解的方法。

@SpringBootApplication
@EnableScheduling
public class Application {
    public static void main(String[] args){
        SpringApplication.run(Application.class,args);
    }
}

3. @Scheduled注解

@Scheduled 注解用于标记需要被调度执行的方法,它可以有多个属性来指定调度策略,如cron表达式、fixedDelay(两次执行之间的间隔时间)或fixedRate(两次执行开始之间的间隔时间)等。

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class MyTask {

    @Scheduled(cron = "0 0/15 * * * ?")
    public void executeEveryQuarterHour() {
        // 每15分钟执行一次的方法体
    }
}

4. 调度器实现

Spring Schedule背后支持多种任务调度方案,如JDK Timer、concurrent包下的ScheduledExecutorService以及Quartz等。Spring通过封装这些底层实现,为开发者提供了统一的接口和配置方式来处理定时任务。

 

 

 

 

标签:Schedule,spring,boot,就够,Spring,定时,starter
From: https://www.cnblogs.com/HQ0422/p/18074419

相关文章

  • Java基于 Springboot+Vue 的招生管理系统,前后端分离
    博主介绍:✌程序员徐师兄、8年大厂程序员经历。全网粉丝15w+、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌......
  • SMUSpring天梯赛1
    补题1:龙龙送外卖题意:做法:思维--遍历方式,从输入的点往外卖点遍历,或标记过的点。回溯的时候更新深度!//到达了最后一个送货点之后不用返回根结点.那么之前到达的点都是要折返点,那么就最后才送最深点节点。  //还有就是如果在去节点8点时候,途径了节点2,那么这个时候去节点......
  • springboot自动配置
    首先,你在pom文件里引入的很多第三方jar里都有一个文件 META-INF/spring.factories,这个文件里的内容和关系到能否自动配置,那有的jar为啥没有,是不需要SpringBoot来自动配置吗,这个我们后面再说。    先来看一下redissonstarter的/META-INF/spring.factories是怎么写的,......
  • 在Docker上传我们自己的镜像(以springboot项目为例)
    首先确定好在我们的centOS服务器上已经安装并配置好docker配置自己的springboot镜像并运行获取springboot的jar包mavenclean--》mavenuepackage --》复制target目录下生成的jar包在服务器选择一个文件夹上传jar包,我这里选用的文件夹叫做/opt/dockertest在jar包的同一......
  • springboot3+vue3(十一)springboot多环境开发
    在开发中我们往往会遇到,本地环境、测试环境、生产环境分别一套配置。如数据库连接,端口号等配置各不相同的问题。 1、多文件配置    2、多文件分组配置如果配置文件有很多的配置信息几百行的情况,为了方便维护我们可以根据功能的情况进行分组拆分。如:服务器相关配......
  • Spring Task 定时任务框架 以及cron表达式
    一:SpringTask介绍SpringTask是spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。定位:定时任务框架作用:定时自动执行某段Java代码应用场景:·信用卡每月还款提醒·银行贷款每月还款提醒·火车票售票系统处理未支付订单·入职纪念日为用户......
  • springboot3/14
    在做系统首页配置时,#注意点,所有页面的静态资源都需要使用thymeleaf去接管;@{}页面国际化在项目中使用国际化我们需要配置i18n文件如果需要在项目中进行按钮自动切换功能,需要自己去定义一个国际化组件LocaleResolver配置完成后,记得将写好的组件配置到spring容器中@Bean在网页......
  • 基于Java+Spring Boot+MySQL的智能菜谱推荐
    目录前言 一、技术栈二、系统功能介绍三、核心代码1、登录模块 2、文件上传模块3、代码封装前言近些年来,随着科技的飞速发展,互联网的普及逐渐延伸到各行各业中,给人们生活带来了十分的便利,智能菜谱推荐系统利用计算机网络实现信息化管理,使整个智能菜谱推荐管理的......
  • 真炸裂,发现一款基于springboot超级好用的开源服务器框架
    兄弟们,真不骗你们,这个框架用起来是真的爽,简直是服务器开发人员的福音!集成该项目后,不用我们程序员再去处理api安全、加签、验签、参数校验、加解密、数据脱敏、异常处理、国际化、接口文档、错误码、缓存、分布式锁、应用、渠道管理等等功能。而且为了帮助客户端开发的同学更简......
  • SpringMVC
    概述SpringMVC是基于MVC模式开发的框架,用来优化Controller,具备IoC和AOP[[Spring#分层解耦|MVC]]是一种开发模式,是模式-视图-控制器的简称,所有的web应用都是基于MVC开发的。SpringMVC优化了Controller的action(Servlet),Spring框架用来整合SpringMVC和MybatisSpringMVC的优点:轻......