Spring Task使用介绍

Spring Task 是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。定时任务框架定时自动执行某段Java代码1). 信用卡每月还款提醒2). 银行贷款每月还款提醒3). 火车票售票系统处理未支付订单4). 入职纪念日为用户发送通知只要是需要定时处理的场景都可以使用Spring Task。 阅读详情

Spring Task

介绍

Spring Task 是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。

定位定时任务框架

作用定时自动执行某段Java代码

为什么要在Java程序中使用Spring Task?

应用场景:

1). 信用卡每月还款提醒

在这里插入图片描述

2). 银行贷款每月还款提醒
在这里插入图片描述

3). 火车票售票系统处理未支付订单

在这里插入图片描述

**强调:**只要是需要定时处理的场景都可以使用Spring Task

cron表达式

cron表达式其实就是一个字符串,通过cron表达式可以定义任务触发的时间

**构成规则:**分为6或7个域,由空格分隔开,每个域代表一个含义

每个域的含义分别为:秒、分钟、小时、日、月、周、年(可选)

举例:

2022年10月12日上午9点整 对应的cron表达式为:0 0 9 12 10 ? 2022

说明:一般日和周的值不同时设置,其中一个设置,另一个用?表示。

**比如:**描述2月份的最后一天,最后一天具体是几号呢?可能是28号,也有可能是29号,所以就不能写具体数字。

为了描述这些信息,提供一些特殊的字符。这些具体的细节,我们就不用自己去手写,因为这个cron表达式,它其实有在线生成器。

cron表达式在线生成器:https://cron.qqe2.com/

在这里插入图片描述

可以直接在这个网站上面,只要根据自己的要求去生成corn表达式即可。所以一般就不用自己去编写这个表达式。

通配符:

* 表示所有值;

? 表示未说明的值,即不关心它为何值;

- 表示一个指定的范围;

, 表示附加一个可能值;

/ 符号前表示开始时间,符号后表示每次递增的值;

cron表达式案例:

*/5 * * * * ? 每隔5秒执行一次

0 */1 * * * ? 每隔1分钟执行一次

0 0 5-15 * * ? 每天5-15点整点触发

0 0/3 * * * ? 每三分钟触发一次

0 0-5 14 * * ? 在每天下午2点到下午2:05期间的每1分钟触发

0 0/5 14 * * ? 在每天下午2点到下午2:55期间的每5分钟触发

0 0/5 14,18 * * ? 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发

0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时

0 0 10,14,16 * * ? 每天上午10点,下午2点,4点

入门案例

Spring Task使用步骤

Spring 3.0以后核心包自带了task 调度工具,我们只需要创建spring boot 3.0,然后便可以直接使用task调度工具。

1). 启动类添加注解 @EnableScheduling 开启任务调度

2). 自定义定时任务类

全注解的方式

  1. 在业务方法上提供注解 @Component @Scheduled

  2. 在启动类上开启注解支持 @EnableScheduling

@Scheduled所支持的参数:

  1. cron:cron表达式,指定任务在特定时间执行;

  2. fixedDelay:表示上一次任务执行完成后多久再次执行,参数类型为long,单位ms;

  3. fixedDelayString:与fixedDelay含义一样,只是参数类型变为String;

  4. fixedRate:表示按一定的频率执行任务,参数类型为long,单位ms;

  5. fixedRateString: 与fixedRate的含义一样,只是将参数类型变为String;

  6. initialDelay:表示延迟多久再第一次执行任务,参数类型为long,单位ms;

  7. initialDelayString:与initialDelay的含义一样,只是将参数类型变为String;

  8. zone:时区,默认为当前时区,一般没有用到。

代码开发

整体架构
在这里插入图片描述

编写定时任务类:

在MyTask.java文件添加以下内容

package com.onenewcode.mytask.task;

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

@Component
public class MyTask {
    /*
    cron表达式 30秒进行一次
     */
    @Scheduled(cron = "0/30 * * * * ? ")
    public void processCorn(){
        System.out.println("corn 测试 30秒运行一次");
    }
    @Scheduled(fixedDelay = 10000)
    public void processFixedDelay(){
        System.out.println("fixedDelay 表示上一次任务执行完成后10000ms再次执行一次");
    }
    @Scheduled(fixedRate = 50000)
    public void processFixedRate(){
        System.out.println("corn 一定的频率执行任务,50000ms执行一次");
    }
//    此版本会失败
//    @Scheduled(initialDelayString = "35000")
//    public void processInitialDelay(){
//        System.out.println("延迟任务,35000ms执行一次");
//    }
}

开启任务调度:

启动类添加注解 @EnableScheduling

package com.onenewcode.mytask;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication
@EnableScheduling
public class MyTaskApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyTaskApplication.class, args);
    }

}

测试结果

在这里插入图片描述

代码仓库

https://github.com/onenewcode/MyTask
Windows 11下ROS2 Humble与PyCharm无缝集成实战(避坑指南+完整配置流程) 本文详细介绍了在Windows 11系统下如何实现ROS2 Humble与PyCharm的无缝集成,包括环境准备、ROS2 Humble安装、PyCharm配置以及C++与Qt5混合开发的实战技巧。通过避坑指南和完整配置流程,帮助开发者高效搭建稳定的机器人开发环境,特别适合Windows平台的ROS2开发者。 阅读详情

相关推荐

数学建模传染病模型_【数学建模】之传染病模型

点击【拇指笔记】,关注我的公众号。SE模型缺点:没有考虑接触到的人中还有一部分病人,所以所有人并不会全部被感染。建立模型:已感染人数(病人)每个病人每天有效接触(足以使人致病)人数为根据(1)(2)可以建立模型:等式两边同时除以\Delta t由导数定义有同时,取\Delta t = 1天由(1)(5)两式可得最终的模型:Logistic模型缺点:区分已感染者(病人)和未感染者(健康人)...

weixin_39590453的博客 2228

spring task使用

Spring Task 简介Spring Task 简介Spring Task 是 Spring 框架原生自带的任务调度框架,它犹如一把瑞士军刀,为开发者提供了丰富多样的功能,助力轻松创建和管理定时任务。相较于其他一些第三方任务调度框架,Spring Task 最大的优势在于其与 Spring 生态系统的无缝集成。这意味着开发者能够在 Spring 应用中自如地运用依赖注入、事务管理等强大特性,使得代码的编写过程更加流畅,后期维护也更为便捷。

ZERO141239的博客 1078

Unraid小白必看:5分钟搞定OpenWrt软路由安装(附iStoreOS配置技巧)

本文为Unraid新手提供了一份详尽的OpenWrt软路由安装与配置指南。通过虚拟机技术,在Unraid系统上快速部署基于iStoreOS的软路由,详细讲解了旁路由与主路由两种模式的网络配置、性能优化技巧及常见故障排查方法,帮助用户充分利用闲置硬件,打造高性能、可定制的家庭网络中枢。

wine的专栏 486

Spring Task 使用详解

Spring Framework 提供了一个强大而灵活的定时任务框架——Spring Task,它可以帮助我们轻松地实现各种定时任务,而无需依赖复杂的第三方库。本文将深入探讨 Spring Task 的使用方法,并结合 Spring Boot 项目进行演示,涵盖@Scheduled注解的多种用法、Cron表达式的详细解释、SchedulingConfigurer接口的灵活配置以及异步任务的处理。

weixin_64178283的博客 1955

利用抖音Cookie充值接口提取支付链接,调起原生微信h5支付宝h5支付

最近开始搞一些个人支付通道的开发,方便个人不用和第三方平台签约就能收款,省去很多流程手续的成本。 然后翻了一下网上并没有太多现成的技术教程,只能自己研究着搞了。 这次要分享的是利用抖音的充值接口,去分析提取出支付链接,分别包含微信原生支付的h5支付链接,和支付宝h5支付链接。 微信h5支付: 抖币充值,抖音充值,抖音直播充值官方入口 - 抖音 支付宝h5支付 抖币充值,抖音充值,抖音直播充值官方入口 - 抖音 整个开发流程思路是以下几步: 1.抓包分析抖音的充值的整个流程,提取关键的一些

Android-逆向的博客 6570

淘宝母婴用品数据挖掘及可视化分析研究

1. 背景介绍 在当今的电子商务时代,母婴用品市场已经成为了各大电商平台的一片蓝海。淘宝作为中国最大的电子商务平台,其上的母婴用品交易数据自然引人关注。理解这些数据,可以帮助商家更好地制定营销策略,也可以帮助消费者更好地选择产品。因此,本文将对淘宝母婴用品的数据进行深入的挖掘和分析。 1.1 电子商务的

AI天才研究院 1261

Spring-Task使用介绍

目前springboot应用广泛,因此对于spring-task直接基于springboot框架介绍,不涉及xml配置。本文直接介绍spring-task的使用方法,涉及的相关基础知识不再赘述,请先阅读Timer和ScheduledExecutorService的相关文章。

weixin_42683476的博客 6625

手把手教你学Simulink--H桥逆变器的PWM控制设计与仿真

本文详细介绍了如何在Simulink环境中设计和仿真一个基于PWM控制的H桥逆变器。H桥逆变器广泛应用于电机驱动、UPS和可再生能源系统等领域,通过PWM技术可以有效控制输出电压的幅度和频率,减少谐波失真,提高系统效率和稳定性。文章首先介绍了所需的工具和环境,包括MATLAB/Simulink和SimscapeElectrical工具箱。接着,详细阐述了从定义任务需求、创建Simulink项目、建立基础电气模型、集成传感器模型、实现PWM控制算法到设置仿真参数和运行仿真的完整步骤。最后,文章总结了通过Sim

MHD0815的博客 720

【Spring Task】介绍及入门案例

Spring Task*是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。

slj18633752884的博客 875

LLM的MCP协议:初识MCP,搭建第一个MCP Server

MCP(Model Context Protocol),是一个开发的协议,标准化了应用程序如何为大模型提供上下文。MCP提供了一个标准的为LLM提供数据、工具的方式,使用MCP会更容易的构建Agent或者是基于LLM的复杂工作流。

Criss@陈磊 2万+

电能质量仿真:电能质量改善措施仿真_(12).电能质量改善措施综合仿真案例

假设我们有一个微电网系统,该系统包含分布式电源(如光伏板、风力发电机)、储能设备、负荷和电网连接。电压波动:由于负荷的波动和分布式电源的间歇性输出,系统电压出现了不稳定的情况。谐波污染:非线性负荷和逆变器的运行导致系统中出现了显著的谐波污染。频率偏差:分布式电源的波动和负荷的突变导致系统频率出现了偏差。我们需要通过仿真来评估这些问题的影响,并提出相应的改善措施。

2401_87715305的博客 1360

简单介绍关于Spring Task与WebSocket的使用

功能回顾:通过整合 Spring Task 定时任务 与 WebSocket 全双工通信,我们实现了以下核心功能:1.服务端主动推送定时任务(如每5秒)自动执行后,通过 WebSocket 向客户端广播消息(如任务状态、数据更新)。2.客户端主动通信客户端通过 WebSocket 发送请求到服务端(如用户操作触发任务),服务端响应并返回结果。实现双向实时交互,打破传统 HTTP 请求-响应的延迟限制。

H545569的博客 962

如何用Python编程实现算术割圆术?

第10章 割圆术 Python编程要点 from … import …语句 math模块的sqrt()函数 round()函数 10.1 图解九章 {:–}觚( gū ):正多边形。“六觚”即正六边形,“十二觚”即正十二边形。 图10-1 六觚、十二觚、二十四觚 提示 图10-1所示由图解九章源码中的“图解割圆术.py”自动绘制而成,我们可运行脚本文件,查看动态的绘制过程。 割六觚以...

人邮异步社区 3237

Spring Task 详解

摘要: Spring Task是Spring框架提供的任务调度模块,简化了定时任务的实现。通过@EnableScheduling启用调度功能后,使用@Scheduled注解定义任务执行规则,支持多种配置方式: Cron表达式:灵活设定复杂计划(如0 15 10 * * ?表示每天10:15执行); fixedRate:固定频率执行(从上一次开始时间计算); fixedDelay:固定延迟执行(从上一次结束时间计算); initialDelay:初始延迟(首次执行前的等待时间)。 适用于数据同步、清理、报表生

2401_83724374的博客 1113

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

spring cloud之spring cloud task

简介 SpringCloud任务允许用户使用SpringCloud开发和运行短期的微服务,在本地 、云环境中、甚至在SpringCloud Data Flow上运行它们。仅添加注解@EnableTask便可将app作为spring boot app运行。 spring cloud task让创建短期的微服务变得很容易。它提供的功能允许在生产环境中按需执行短期的JVM进程。 环境要求 Java8级...

weixin_36142042的博客 5359

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Spring Task 介绍

Spring Task 是spring框架提供的任务调度工具,是一个定时任务框架,可以按照预定的时间自动的执行某个代码逻辑提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了spring Task的使用前言一.spring Task 的作用二.cron表达式三.使用步骤总结t=P4F5。

2401_87106512的博客 651

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

spring Task详解

Cron 表达式是一种用于配置任务执行时间的字符串表达式,它由一系列的字段组成,每个字段代表一个时间单位。Cron 表达式通常用于定时任务调度工具(如 Spring Task、Quartz 等)中,用于精确地指定任务的执行时间。Cron 表达式的字段Cron 表达式通常由 6 或 7 个域组成,分别代表不同的时间单位。以下是每个域的含义秒分钟小时日月周年注意周:指的是星期几例如 2025年4月10日上午11点整的cron表达式应该为 0 0 11 10 4?2025链接:cron在线生成器。

qq_62374596的博客 1405

Spring Task的使用

在服务类中定义一个方法,并使用 @Async注解标记它以实现异步执行;@Component//定义核心线程数// 最大线程数// 任务队列容量大小//放进IOC容器并起名称//自定义线程池//设置核心线程数//设置最大线程数 : 长工 + 临时工//设置任务队列容量大小//设置线程的名称前缀//设置拒绝策略请注意,阿里并不推荐使用JDK自带的线程池,因为他有一些弊端,不是不让使用,而是使用的时候我们最好能定义一些确切参数为什么阿里不推荐使用JDK自带线程池。

winks3的博客 412

Spring Task 快速入门

是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。cron表达式其实就是一个字符串,通过cron表达式可以定义任务触发的时间分为6或7个域,由空格分隔开,每个域代表一个含义每个域的含义分别为:秒、分钟、小时、日、月、周、年(可选)2022注意:一般日和周的值不同时设置,其中一个设置,另一个用?表示(周与日不能同时设置,他们俩必须有一个为问号)。为了描述这些信息,提供一些特殊的字符。这些具体的细节,我们就不用自己去手写,因为这个cron表达式,它其实有在线生成器。

程序猿追的博客 1万+

Spring Task介绍

构成规则:分为6或7个域,由空格分隔开,每个域代表一个含义每个域的含义分别为:秒、分钟、小时、日、月、周、年可选案例:cron。

qq_65317837的博客 327

Spring Task详细使用

比如说我们设置了两个定时任务,那么因为Spring Task是单线程,如果在第一个定时任务加了一个sleep方法,那么会等第一个方法响应后在执行第二个任务,就很浪费cpu运行时间。这是一个功能比较强大的的调度器,可以让程序在指定时间执行,也可以按照某一个频度执行,配置起来稍显复杂。执行效果如下:可以看到是先执行了任务2,但是他们都要隔五秒才能运行一次,因为通过线程号可以知道这是同一个线程。执行效果如上,确实不会影响到任务2的运行,但是如果定时任务过多,超过了配置的线程池的线程数量还是会运行错乱。

weixin_52496592的博客 1356

Spring Task概述

Spring Task是Spring框架提供的一种轻量级任务调度解决方案,适用于各种规模的应用程序。通过合理配置和使用Spring Task,可以方便地实现定时任务、周期性任务和异步任务,提高应用程序的自动化和响应能力。在使用Spring Task时,应遵循最佳实践,确保任务的稳定执行和系统的可靠性。

xycxycooo的博客 1042

Spring Task—定时任务

Spring Task 是 Spring 提供的一种轻量级定时任务调度功能,内置在 Spring 框架中。与 Quartz 等重量级调度框架相比,Spring Task 使用简便,无需额外依赖,适合在简单的调度任务场景中使用。通过注解配置方式,开发者可以快速实现周期性任务执行,非常适合 Spring Boot 项目中的定时任务需求。

cyt涛的博客 1287

SpringBoot29- Spring Task 入门教程

加开启功能写一个类,加@Component方法上加方法必须是,无参数用fixedRatefixedDelay或cron控制时间如果你用的是传统 Spring(非 Boot)的配置类,就是在传统 Spring 项目中手动开启定时任务功能的一种方式,相当于告诉 Spring:‘请支持 @Scheduled 注解!’”如果你现在用的是创建这个类;确保它被 Spring 扫描到(通过那么你的@Scheduled方法就能正常运行啦!问题默认行为如何解决多个@Scheduled任务是否并行?

qq_31532983的博客 916
上一篇: Nginx静态资源部署之响应内容部署
下一篇: elasticsearch 安装
过去日记
过去日记 新星创作者: 后端开发技术领域 新星创作者: 后端开发技术领域
博客等级 码龄3年 5343粉丝 225原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

过去日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值