定时任务@Scheduled基本使用和概念
目录
- @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基本使用和概念相关推荐
- Spring定时任务scheduled
Spring定时任务 一. cron 表达式 1. 概念:Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: 2. Cro ...
- SpringBoot 实战定时任务 Scheduled
序言 使用SpringBoot创建定时任务非常简单,目前主要有以下三种创建方式: 一.基于注解(@Scheduled) 二.基于接口(SchedulingConfigurer) 前者相信大家都很熟悉, ...
- @scheduled只执行一次_SpringBoot第四篇:定时任务@Scheduled
使用SpringBoot创建定时任务主要有三种创建方式: 1.基于注解(@Scheduled) 2.基于接口(SchedulingConfigurer)实际使用中我们往往想从数据库中读取指定时间来动态 ...
- Spring定时任务@scheduled多线程的使用(@Async注解)
1.开篇 在Spring定时任务@Scheduled注解使用方式浅窥这篇文章里面提及过,spring的定时任务默认是单线程的,他在某些场景下会造成堵塞,那么如果我们想让每一个任务都起一条线程去执行呢? ...
- spring定时任务Scheduled与定时任务线程池配置SchedulingConfigurer ,Java
spring定时任务Scheduled与定时任务线程池配置SchedulingConfigurer ,Java spring默认定时任务的使用 package zhangphil.demo;impor ...
- Spring定时任务@Scheduled注解使用配置方式(cron表达式、fixedRate和fixedDelay)
Spring定时任务@Scheduled注解使用配置方式(cron表达式.fixedRate和fixedDelay) 序言: 个人推荐一个很方便的在线Cron生成器(网页版):https://qqe2 ...
- SpringBoot定时任务@Scheduled注解详解
SpringBoot定时任务@Scheduled注解详解 项目开发中,经常会遇到定时任务的场景,Spring提供了@Scheduled注解,方便进行定时任务的开发 概述 要使用@Scheduled注解 ...
- 定时任务 @Scheduled注解的学习
定时任务 @Scheduled注解的学习 Spring中提供了@Scheduled注解,目的是为了方便进行定时任务的开发. 要使用@Scheduled注解,首先需要在启动类添加@EnableSched ...
- 定时任务 Scheduled quartz
在项目应用中往往会用到任务定时器的功能,比如某某时间,或者多少多少秒然后执行某个骚操作等. spring 支持多种定时任务的实现,其中不乏自身提供的定时器. 接下来介绍一下使用 spring 的定时器 ...
最新文章
- VS2005 常用快捷键
- vim设置窗体大小的环境变量
- SEM那些被人混淆的事儿(已完结)
- ***Xcode Interface Builder或Storyboard中可建立那两种连接?
- D8016“/ZI”和“/Gy-”命令行选项不兼容问题的解决
- 钉钉宜搭邵磊:钉钉宜搭低代码加速业务互联 让改变发生
- pip安装python模块遇到一直出现retrying的问题
- 现在开始(译) 明确的知道你想要什麽是关键 每次 只做一件事的习惯 成功的人是因为屡次尝试经历失败保持激情 动手一试...
- 登录界面点击登录后如何延迟提示成功的div的显示时间并跳转
- connect ECONNREFUSED 151.101.0.133:443 | spawn xxx ENOENT
- B. Who‘s Opposite?
- Android无线安全测试工具-WiFinSpect
- 分布式爬虫原理之Scrapy分布式实现
- 【转】HTML标签大全
- 安全电子签章密码技术规范_「签签课堂」(四)一篇读懂电子合同的专业术语...
- matlab绘制叮当猫
- 硬盘内部传输速率和外部传输速率的区别
- C# 开发的网络数据包抓取的的实现
- 游戏引擎除了开发游戏还能做什么?
- XAPP1052理解
热门文章
- 不使用form表单提交方式提交文件
- 用java链接lodp取数据
- 移位操作(逻辑位移,算术位移)
- win10禁止dpi缩放在哪_大神处理win10系统高分屏下设置DPI缩放的解决方法
- laravel 黑名单功能实现
- centos/7.5.1804/isos/x8_64下载地址
- 2021年8月最好用的苹果cms采集站
- 金融帝国实验室(Capitalism Lab)官方正版游戏『优惠活动政策』
- 『金融帝国实验室』(Capitalism Lab)〔优秀教程②〕《了解供应链中供求关系》(作者:CapitalismLabStory)
- 冬季预防宝宝感冒吃什么