@Scheduled注解简介

一、注解介绍

@Scheduled注解是Spring Boot提供的用于定时任务控制的注解,主要用于控制任务在某个指定时间执行,或者每隔一段时间执行。

二、源码

package org.springframework.scheduling.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Repeatable;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.concurrent.TimeUnit;
import org.springframework.aot.hint.annotation.Reflective;

@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Repeatable(Schedules.class)
@Reflective
public @interface Scheduled {
    String CRON_DISABLED = "-";

    String cron() default "";

    String zone() default "";

    long fixedDelay() default -1L;

    String fixedDelayString() default "";

    long fixedRate() default -1L;

    String fixedRateString() default "";

    long initialDelay() default -1L;

    String initialDelayString() default "";

    TimeUnit timeUnit() default TimeUnit.MILLISECONDS;

    String scheduler() default "";
}

三、Spring接入说明

@Scheduled需要配合@EnableScheduling使用。使用时,将@Scheduled注解放在待定时的方法名上方,将 @EnableScheduling放在项目主启动类类名上方

@Scheduled主要有三种配置执行时间的方式:cron、fixedRate和fixedDelay。

四、主要参数说明

参数说明
cron任务执行的cron表达式
zonecron表达时解析使用的时区,默认为服务器的本地时区。使用java.util.TimeZone#getTimeZone(String)方法解析 GMT-8:00
fixedRate固定速率。上一次任务执行开始到下一次执行开始的间隔时间固定,单位为ms。若在调度任务执行时,上一次任务还未执行完毕,会加入worker队列,等待上一次执行完成后,马上执行下一次任务
fixedRateString与fixedRate一致,只是间隔时间使用java.time.Duration#parse解析
fixedDelay固定延迟。上一次任务执行结束到下一次执行开始的间隔时间固定,单位为ms。
fixedDelayString与fixedDelay一致,只是间隔时间使用java.time.Duration#parse解析
initialDelay首次延迟多长时间后执行,单位ms。之后按照fixedRate、fixedRateString、fixedDelay、fixedDelayString指定的规则执行,需要指定其中一个规则。注意:不能和cron一起使用
initialDelayString与initialDelay 一致,只是间隔时间使用java.time.Duration#parse解析
timeUnit时间单位。默认为毫秒。

五、Cron表达式

参考 Cron表达式详解

在这里插入图片描述

cron表达式*和?的区别

  • 星号(* ):
    在cron表达式中,星号(*)表示该字段的每一个可能值。
    例如,在分钟字段中使用*表示“每分钟”。
    在其他字段中,*也表示接受所有可能的值。、

  • 问号(?):
    问号(?)只在日期和星期字段中使用。
    当在日期和星期字段中同时出现*时,?用于屏蔽其中一个字段,以确保任务只在满足另一个字段条件的时间触发。
    ?通常表示“无意义的值”,相当于一个占位符。
    例如,如果日期和星期字段都设置为1,那么任务将在每月的第一天触发。但是,如果这两个字段同时设置为1,而实际上每个月的第一天可能不总是星期一,这时可以使用?来屏蔽其中一个字段,确保任务只在满足特定条件的时间触发。例如,1 * * * * ?表示每天的整点触发任务,而1 ? * * * *表示每月第一天的整点触发任务。12

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/551906.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【服务器部署篇】Linux下Nacos安装和配置

作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过大学刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是&#xff0…

中科国声携新品亮相北京InfoComm China 2024展

4月17日,北京InfoComm China 2024展(北京专业视听技术和集成体验解决方案展览会)在北京的国家会议中心盛大开幕。展会为期三天。作为备受瞩目的”会议系统国家队“,中科国声携众多优质会议音频产品及全新会议系统解决方案精彩亮相…

贪心算法简介

目录 一、什么是贪心算法? 二、贪心算法的特点 三、贪心算法解决找零问题、最短路径问题、背包问题 1.找零问题 2.最短路径问题 3.背包问题 一、什么是贪心算法? 贪心算法就是希望通过局部最优来解决全局最优 基本步骤:1.将问题分为若…

「每日跟读」英语常用句型公式 第14篇

「每日跟读」英语常用句型公式 第14篇 1. As far as __ is concerned 就__ 而言 As far as the project timeline is concerned, we’re running ahead of schedule. (就项目时间表而言,我们进度超前了。) As far as the exam results ar…

第20天:信息打点-红蓝队自动化项目资产侦察企查产权武器库部署网络空间

第二十天 一、工具项目-红蓝队&自动化部署 自动化-武器库部署-F8x 项目地址:https://github.com/ffffffff0x/f8x 介绍:一款红/蓝队环境自动化部署工具,支持多种场景,渗透,开发,代理环境,服务可选项等.下载:wget -O f8x https://f8x.io…

Oracle执行计划优化SPM案例

1.现象 执行下面这段代码,发现子库存表走了全表扫描 SELECT msi.secondary_inventory_name, --子库存msi.description --库存说明FROM inv.mtl_secondary_inventories msi,csi_item_instances ciiWHERE msi.secondary_inventory_name cii.inv_subinve…

Matlab拟合常见错误解决 |分段微分方程组拟合【源码+教程】

专栏导读 作者简介:工学博士,高级工程师,专注于工业软件算法研究本文已收录于专栏:《复杂函数拟合案例分享》本专栏旨在提供 1.以案例的形式讲解各类复杂函数拟合的程序实现方法,并提供所有案例完整源码;2.…

我们一起看看《看漫画学C++》中如何介绍的字符串的用法

C中的字符串使用的是 std::string 类型,它是C标准库中提供的字符串类,提供了丰富的字符串操作方法。下面是关于C字符串的一些常用用法: 字符串拼接 字符串查找 字符串追加 购书地址:https://item.jd.com/14418856.html

邮件过滤是什么?怎么设置邮件过滤?

现在我们每天都要收发很多电子邮件。有的是朋友发来的问候,有的是工作伙伴的沟通,还有的可能是那些我们不想要的广告或垃圾邮件。这么多邮件,怎么看过来呀?其实,有一个好工具叫“邮件过滤”,它就像你的私人…

新手做抖音小店,想要快速起店,抓住这两点很关键

大家好,我是电商笨笨熊 抖音小店一定是近几年来爆火的电商项目,凭借着直播电商的方式在短短几年内迅速崛起,成为现在人尽皆知的电商项目。 然而在抖店里,不少进入的玩家都是新手,甚至都是盲目入店,没有任…

最最普通程序员,如何利用工资攒够彩礼,成为人生赢家

今天我们不讲如何提升你的专业技能去涨工资,不讲面试技巧如何跳槽涨工资,不讲如何干兼职赚人生第一桶金,就讲一个最最普通的程序员,如何在工作几年后,可以攒够彩礼钱,婚礼酒席钱,在自己人生大事…

gcc原理和使用

gcc gcc是什么 GCC,全称 GNU Compiler Collection(GNU 编译器套件),是一套功能强大的编程语言编译器,由自由软件基金会(Free Software Foundation, FSF)作为GNU项目的一部分开发和维护。它最初…

CMEF | 澳鹏Appen精彩亮相第89届中国国际医疗器械博览会

4月14日,为期四天的第89届中国国际医疗器械博览会(CMEF)盛大收官。如今,人们的健康需求在人口老龄化等一系列因素的影响下持续增长,这意味着卫生系统也面对着更多具有复杂健康需求的患者。信息化、数字化、智能化已经成…

Java语言开发的AI智慧导诊系统源码springboot+redis 3D互联网智导诊系统源码

Java语言开发的AI智慧导诊系统源码springbootredis 3D互联网智导诊系统源码 智慧导诊解决盲目就诊问题,减轻分诊工作压力。降低挂错号比例,优化就诊流程,有效提高线上线下医疗机构接诊效率。可通过人体画像选择症状部位,了解对应…

1.总结串口的发送和接收功能使用到的函数2.总结DMA的作用,和DMA+空闲中断的使用方式3.使用PWM+ADC光敏电阻完成光控灯的实验

1.总结串口的发送和接收功能使用到的函数 串口发送函数:HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size, uint32_t Timeout) UART_HandleTypeDef *huart:指定要使用的串口 const uint8_t *pData&…

计算机中的小数表示

文章目录 前言整数表示的缺陷定点小数定点小数加法乘法运算 浮点数IEEE754浮点数标准移码阶码的移码表示 IEEE754中的特殊点两个0非规格化数字正常浮点数无穷大NaN 浮点数简单举例浮点数一些其余特性浮点数计算不符合结合律浮点数舍入规则浮点数与整数之间的相互转换 总结 前言…

条形码与二维码的优缺点分析

条形码和二维码在我们的日常生活和工业应用中无处不在,广泛应用于各类商品、物流、防伪等各个领域,它们可以帮助我们快速识别产品、跟踪货物、管理库存、验证身份、获取信息等。条形码和二维码凭借着便捷、低成本、精准等独特的优势,应用领域…

(C语言入门)复合类型、内存管理

目录 复合类型(自定义类型) 概述: 结构体变量的定义和初始化: 结构体成员的使用: 结构体做函数参数: 结构体值传参: 结构体地址传参: 共用体(联合体)&…

前端开发攻略---实现与ChatGPT同款光标闪烁打字效果。

1、演示 2、实现代码 <!DOCTYPE html> <html lang"ch-ZN"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewport" content"widt…

基于R语言实现的beta二项回归模型【理解与实现】

本实验&#xff0c;创建一组使用二项分布模拟的数据&#xff08;不带额外的随机性&#xff09;&#xff0c;和另一组使用Beta二项分布模拟的数据&#xff08;引入了随机成功概率 p&#xff0c;从而增加了数据的离散性。 现在假设我们站在上帝视角&#xff0c;有两组不知道分布…