目录

  • @Scheduled简单介绍
    • 标识符
    • 字符
    • 各种参数
  • 简单使用
    • 每天零点删除三天前的数据

@Scheduled简单介绍

要使用@Scheduled注解,首先需要在启动类添加@EnableScheduling,启用Spring的计划任务执行功能,这样可以在容器中的任何Spring管理的bean上检测@Scheduled注解,执行计划任务

比如

@Scheduled(cron = “0 0 0 * * ?”)
表示每天的凌晨零点开始定时执行任务。

标识符

从左到右用空格隔开分别是:秒 分 时 日 月 周 年(可省略)第一个位置:Seconds 秒:区间 0-59 秒,代表一分钟内的秒数。第二个位置:Minutes 分:区间 0-59 分,代表一小时内的分钟数。第三个位置:Hours 时:区间 0-23 时,代表一天中的小时数。第四个位置:Day of month 日:区间 1-31 (?根据每月有多少天来),代表一月中的多少号。第五个位置:Month 月:区间 1-12 ,代表一年中的月份。第六个位置:Day of week 周:区间 1-7或者英文星期的缩写,代表星期几。第七个位置:Year 年:区间1970-2099,代表具体年份,一般不用,可以不写。

字符

描述:写在cron表达式的标识符位置用于表达特定意义的字符阿拉伯数字:数值,出现在标识符位置的数字代表对应值* :通配,语义相当于每… 比如第五个位置的 *就表示每月都会执行(相当于1-12)? :忽略,语义相当于不管… 比如第六个位置的?就表示不管当前是周几就会执行。至于为什么会有这种用法,我觉得应该是因为它和其他的字符可能会冲突。如果用*的话表示周一到周日都会执行,此时其他语义就不明确了,所以如果用不上星期的话一般给它用一个?表示 not care。/ :间隔,语义相当于每隔… 比如例2中的第三个位置的2/5就表示从2点开始每隔五小时- :区间,语义相当于第…到…的每… 比如例2中的第二个位置的15-20就表示第15分钟到20分钟之间的每分钟, :枚举,语义相当于第…和… 比如例2中的第一个位置的15,20,40就表示第15秒、20秒和40秒L :最后(last),语义相当于最后一个 比如例2中的第四个位置的L就表示最后一天W :工作日,字面意思,就是工作日 比如例3中的第四个位置的15W表示15号附近最近的工作日,如果15号刚好是工作日那就15号触发,如果15号是周六那就14号触发,如果15号是周日那就16号触发。前面不带数字就是所有匹配的工作日。# :周定位,语义相当于每月的第几个周几 比如例4中的第六个位置的2#3就表示第三个周一。

各种参数

简单使用

每天零点删除三天前的数据

@Component
@EnableScheduling
@Slf4j
public class ScheduleTaskDeleteWaterquality {@Autowiredprivate DataMapper DataMapper;@Scheduled(cron = "0 0 0 * * ? ")public void deleteDataInfo() { //删除3天前的数据Date now=new Date();String deleteDate=getDeleteDate(now,3);try{DataMapper.deleteByDate(deleteDate);}catch (Exception e){log.error("删除3天前的数据失败!"+e.getMessage());}}//获取需要删除的时间public static String getDeleteDate(Date now,int days){//Calendar获得日期比较方标 getInstance创建static静态实例,Calendar calendar = Calendar.getInstance();calendar.setTime(now);calendar.add(calendar.DATE, -days);Date delete=calendar.getTime();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");String dateString=sdf.format(delete);return dateString;}}

<!--删除3天前的挂号信息数据--><delete id="deleteByDate">delete from patientRegisterwhere REGISTER_TIME like CONCAT(CONCAT('%',#{deleteDate,jdbcType=CHAR}),'%')</delete>

定时任务@Scheduled基本使用和概念相关推荐

  1. Spring定时任务scheduled

    Spring定时任务 一. cron 表达式 ​ 1. 概念:Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: ​ 2. Cro ...

  2. SpringBoot 实战定时任务 Scheduled

    序言 使用SpringBoot创建定时任务非常简单,目前主要有以下三种创建方式: 一.基于注解(@Scheduled) 二.基于接口(SchedulingConfigurer) 前者相信大家都很熟悉, ...

  3. @scheduled只执行一次_SpringBoot第四篇:定时任务@Scheduled

    使用SpringBoot创建定时任务主要有三种创建方式: 1.基于注解(@Scheduled) 2.基于接口(SchedulingConfigurer)实际使用中我们往往想从数据库中读取指定时间来动态 ...

  4. Spring定时任务@scheduled多线程的使用(@Async注解)

    1.开篇 在Spring定时任务@Scheduled注解使用方式浅窥这篇文章里面提及过,spring的定时任务默认是单线程的,他在某些场景下会造成堵塞,那么如果我们想让每一个任务都起一条线程去执行呢? ...

  5. spring定时任务Scheduled与定时任务线程池配置SchedulingConfigurer ,Java

    spring定时任务Scheduled与定时任务线程池配置SchedulingConfigurer ,Java spring默认定时任务的使用 package zhangphil.demo;impor ...

  6. Spring定时任务@Scheduled注解使用配置方式(cron表达式、fixedRate和fixedDelay)

    Spring定时任务@Scheduled注解使用配置方式(cron表达式.fixedRate和fixedDelay) 序言: 个人推荐一个很方便的在线Cron生成器(网页版):https://qqe2 ...

  7. SpringBoot定时任务@Scheduled注解详解

    SpringBoot定时任务@Scheduled注解详解 项目开发中,经常会遇到定时任务的场景,Spring提供了@Scheduled注解,方便进行定时任务的开发 概述 要使用@Scheduled注解 ...

  8. 定时任务 @Scheduled注解的学习

    定时任务 @Scheduled注解的学习 Spring中提供了@Scheduled注解,目的是为了方便进行定时任务的开发. 要使用@Scheduled注解,首先需要在启动类添加@EnableSched ...

  9. 定时任务 Scheduled quartz

    在项目应用中往往会用到任务定时器的功能,比如某某时间,或者多少多少秒然后执行某个骚操作等. spring 支持多种定时任务的实现,其中不乏自身提供的定时器. 接下来介绍一下使用 spring 的定时器 ...

最新文章

  1. VS2005 常用快捷键
  2. vim设置窗体大小的环境变量
  3. SEM那些被人混淆的事儿(已完结)
  4. ***Xcode Interface Builder或Storyboard中可建立那两种连接?
  5. D8016“/ZI”和“/Gy-”命令行选项不兼容问题的解决
  6. 钉钉宜搭邵磊:钉钉宜搭低代码加速业务互联 让改变发生
  7. pip安装python模块遇到一直出现retrying的问题
  8. 现在开始(译) 明确的知道你想要什麽是关键 每次 只做一件事的习惯 成功的人是因为屡次尝试经历失败保持激情 动手一试...
  9. 登录界面点击登录后如何延迟提示成功的div的显示时间并跳转
  10. connect ECONNREFUSED 151.101.0.133:443 | spawn xxx ENOENT
  11. B. Who‘s Opposite?
  12. Android无线安全测试工具-WiFinSpect
  13. 分布式爬虫原理之Scrapy分布式实现
  14. 【转】HTML标签大全
  15. 安全电子签章密码技术规范_「签签课堂」(四)一篇读懂电子合同的专业术语...
  16. matlab绘制叮当猫
  17. 硬盘内部传输速率和外部传输速率的区别
  18. C# 开发的网络数据包抓取的的实现
  19. 游戏引擎除了开发游戏还能做什么?
  20. XAPP1052理解

热门文章

  1. 不使用form表单提交方式提交文件
  2. 用java链接lodp取数据
  3. 移位操作(逻辑位移,算术位移)
  4. win10禁止dpi缩放在哪_大神处理win10系统高分屏下设置DPI缩放的解决方法
  5. laravel 黑名单功能实现
  6. centos/7.5.1804/isos/x8_64下载地址
  7. 2021年8月最好用的苹果cms采集站
  8. 金融帝国实验室(Capitalism Lab)官方正版游戏『优惠活动政策』
  9. 『金融帝国实验室』(Capitalism Lab)〔优秀教程②〕《了解供应链中供求关系》(作者:CapitalismLabStory)
  10. 冬季预防宝宝感冒吃什么