首页 > 其他分享 >SpingBoot @Scheduled定时任务

SpingBoot @Scheduled定时任务

时间:2024-05-15 16:30:46浏览次数:29  
标签:Scheduled 1s 一次 SpingBoot eg 任务 定时 执行

现在有每天抽数据,统计数据的需求,虽然说我有点理解不了 记录 每个部门 的 销售评审流程 的 平均处理时长 这个数据有什么意义。码农?malou!

SpringBoot 从1.3.0版本开始提供对定时任务的支持

准备工作

1、在启动类上添加@EnableScheduling开启定时任务

2、在定时任务上添加@Scheduled(所在的类上添加@Component)

3、写cron表达式或者配置fixedRate/fixedDelay属性

cron表达式

SpringBoot只支持6位的cron表达式,不支持7位(没有Year/年)

SpringBoot只支持cron表达式中的专有符号?,其他的反正用不到就不写了,cron表达式在线生成工具

* * * * * * *
字段 Seconds Minutes Hours DayofMonth Month DayofWeek Year
含义 星期
符号 , - * / , - * / , - * / , - * / ? , - * / , - * / , - * / ?

符号解析:

, :枚举

​ eg:Seconds中1,5,表示在第1秒,第5秒的时候触发事件
- :范围

​ eg:Seconds中1-5,表示在1秒到5秒,这个区间内每秒都触发事件
* :通配符

​ eg:Seconds中使用,表示每一秒都触发事件
/ :间隔

​ eg:Seconds中1/5,表示第1秒触发一次,后隔5秒触发一次事件

? :不指定值

​ 只能用在DayofMonthDayofWeek两个域,两者互斥,须对其一设置

fixedRate

@Schedule中的属性,用于指定任务执行的时间间隔(单位为毫秒),表示以固定的频率执行某个方法或任务

eg:如果设置为1s,任务将每隔1s执行一次,每次任务执行开始后等待1s再执行下一次

fixedRate从上一次方法执行开始的时间算起,如果上一次方法执行时间超过了间隔时间,那上一次任务执行完之后,立即执行下一个任务

fixedDelay

@Schedule中的一个属性,用于指定任务执行之间的延迟时间(单位为毫秒),表示以固定的时间间隔执行某个方法或任务,并在每次执行完成后等待指定的延迟时间再执行下一次

eg:如果设置为1s,任务将每隔1s执行一次,每次任务执行完成后等待1s再执行下一次

fixedDelay从上一次方法执行完成的时间算起,如果上一次方法执行阻塞住了,会等到上一次方法执行完,并等待给定间隔时间之后执行下一次

开启异步来执行定时任务

1、在启动类上添加注解@EnableAsync

2、定时任务上添加@Async

开启异步后,每个任务都会从线程池里分配一个线程来执行,避免耗时长的任务影响到其他任务

标签:Scheduled,1s,一次,SpingBoot,eg,任务,定时,执行
From: https://www.cnblogs.com/fanwenkeer/p/18194168

相关文章

  • 快捷自由定时重启、注销、关机
    首先,需要用到的这个工具:度娘网盘提取码:qwu2蓝奏云提取码:2r1z1、打开工具,进入定时器编辑版块 2、左侧目录新建一个定时器 3、选择需要的周期,这里是每天0点,一次执行一条 4、添加具体事件 5、选重启 6、也有关机、注销等等 7、添加完成,如果需要,可以......
  • Kubebuilder实现一个定时扩缩容的功能
    参考b站大佬https://www.bilibili.com/video/BV1jJ4m1j7gK/?spm_id_from=333.788&vd_source=7e624c7a17d4407088aae9cb33e5e0aa开始mkdirdeploy-scalercddeploy-scalergomodinitdeploy-scalerkubebuilderinit-domainscaler.comkubebuildercreateapi-kindS......
  • requestAnimationFrame模拟定时器
    const{ myInterval,clearMyInterval}=(function(){ //存放系统中的定时器id lettimerIdMap={num:0} functionmyInterval(callback,interval){ //每设置一次定时器,num++代表系统中有num个自定义的定时器 ......
  • 在PLC的扫描特性下,FOR循环里面套IF或者定时器会发生什么?
    1.为什么会提出这个题目在PLC指令的执行过程中,FOR循环会在每个扫描周期执行完一个循环,然后程序才会接着往下扫描在PLC指令的执行过程中,IF判断会在每次扫描中判断一次条件,满足则进入执行体,不满足则跳出IF把IF放在FOR循环里面,会导致循环体执行时间过长,或者其他问题吗?(答案是不会......
  • 如何定时打开网站
    首先,需要用到的这个工具:度娘网盘提取码:qwu2蓝奏云提取码:2r1z1、打开工具按下Ctrl+3,切换到定时器模块,左侧右键,选择新建 2、标题叫百度,等下就让它打开百度,间隔1分钟,每次重复执行1个 3、在建好的右侧,右键,添加  4、选择链接,输入百度网址,点击确定  5、这样做好......
  • LwRB - 一款适用嵌入式系统的轻量级 RingBuffer+MultiTimer - 超精简的纯软件定时器驱
    1、MicroMagic发布世界上最快的64-bitRISC-V核近日,一家位于美国加州森尼维尔的小型电子设计公司MicroMagic宣称设计、生产出了全世界最快的64位RISC-V内核,比苹果的M1芯片和ArmCortex-A9表现还要出色。消息源: http://www.micromagic.com/news/RISCv-Fastest_PR.pdf这......
  • Docker容器定时备份MySQL数据库
    1.系统环境mysql8、centos7.92.创建mysql_backup.sh文件#!/bin/bash#获取容器idcontainer_id=`/usr/bin/dockerps-aqf"name=mysql-8.0"`echo"mysql的镜像IDis$container_id"#登录用户名mysql_user="xxx"#登录密码(注意如果密码包含特殊符号前面要用'......
  • .NET有哪些好用的定时任务调度框架
    .NET有哪些好用的定时任务调度框架前言定时任务调度的相关业务在日常工作开发中是一个十分常见的需求,经常有小伙伴们在技术群提问:有什么好用的定时任务调度框架推荐的?今天大姚给大家分享5个.NET开源、简单、易用、免费的任务调度框架,帮助大家在做定时任务调度框架技术选型的时候......
  • 为什么要用setTimout来做定时器?
    Q:再js中定时任务我们为什么要用setTimeout模拟,而不直接用setIntervalA:以下为详细答案精确控制时间间隔:使用setTimeout可以更精确地控制每次任务执行的时间间隔。因为在任务执行完成之后,我们可以根据需要再次设置下一个任务执行的时间,从而避免了可能因任务执行时间过长而......
  • Oracle数据库 定时备份
    说明学习了如何Oracle如何备份数据库,实际开发过程中数据库应该每隔一段时间就要备份一次,所以我们就需要一个定时执行这个代码的功能,同时备份的文件可能进行一些处理,比如压缩。步骤建一个文本文件,添加以下内容,后缀名修改为.bat::代码页更改为Unicode(UTF-8)chcp65001@......