Spring定时任务

一. cron 表达式

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

2. Cron表达式结构:Cron 从左到右(用空格隔开):秒 分 小时 月份中的日期 月份 星期中的日期 年份

3. 在线生成cron表达式:http://cron.qqe2.com/

4. Cron各字段含义

注意:星期和日是冲突的,因此有星期数了,就不能有日

通用符号:,- * /
, :  表示枚举值。例如:在Minuttes域使用5,20,表示在时间的分钟数为5,20时触发事件
- : 表示范围。例如在Minutes域使用5-20,表示在时间的分钟数为5-20时每分钟都触发事件
* : 表示匹配该域的任意值,假如在Minutes域使用,表示时间分数不做限制。没分钟都触发
/ :  表示其实开始时间触发,然后每隔固定时间触发一次,例如在Minutes域使用5/20,表示分钟数为5时触发一次,后隔20分钟即25,45再分别触发一次事件。eg:  0 0 2 1 * ?     //表示每个月的1号的2点执行
eg: 0 10,44 14 ?3 WED  //在每年的3月份星期三的14点的10分和44分0秒执行一次专有符号:
?: 只能使用在DayofMonth和DayofWeek两个域,由于DayofMonth和DayofWeek互斥,必须对其一设置
L:  表示最后,只能出现在DayofWeek和DayofMonth域,如果DayofWeek域使用5L(从星期日计数),意味着在最后的一个星期四触发。
w:   表示有效工作日(周一到周五),只能出现在DayofMonth域,系统将在指定日期的最近有效工作日触发事件。eg:  5w //表示在每个月的5号的最近的一个工作日执行LW:  这两个可以连用,表示在某个月最后一个工作日
#;  用于确定每个月星期几,只能出现在DayofWeek域,例如4#2表示在每个月的第二个星期三执行
注意:专用符号除了?之外,spring都不支持
5. Demo
*/2 * * * * ? 或 0/2 * * * * ?       //每两秒执行一次
0 0 1 1 * ? *                        //每月的1日的凌晨1点执行
0 0 9,12,17 * * ?                    //每天上午9点,下午12点,17点执行
0 10 12 * * ? 或 0 10 12 ? * * 或 0 10 12 * * ? *  //每天上午12:10执行
0 30 1 L * ?                         //每月最后一日的凌晨1:30执行
0 0 12 ? * WED                       //每周三中午12点执行

二. spring定时任务步骤

1. 创建一个springBoot工程
2. 在启动类上加上加上@EnableScheduling注解
//开启支持定时任务
@EnableShceduling
3. 在需要执行定时任务的方法上加上@Scheduled注解并加上cron表达式

案例背景:你女朋友生病了,暖男一枚,出于关心,你要没给他发消息提醒她吃药,但是因为工作原因,无法及时的回复,身为程序员的你,通过定时任务发送消息。

package com.itheima.reggie;import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
//开始支持定时任务功能
@EnableScheduling
//启动类
@SpringBootApplication
//打印日志
@Slf4j
public class ReggieApplication {public static void main(String[] args) {SpringApplication.run(ReggieApplication.class,args);log.info("》》》》》》》》》》》》》》》》》》项目启动成功《《《《《《《《《《《《《《《《《《《");}@Scheduled(cron = "* * 8,12,19 * * ? ")public void takeMedicine(){log.info("该吃药了.................");}@Scheduled(cron = "* * 0/2 * * ? *")public void drinkWater(){log.info("该喝水了...............");}
}

Spring定时任务scheduled相关推荐

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

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

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

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

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

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

  4. Spring定时任务-@Scheduled

    目的:使用Spring的@Scheduled实现定时任务 1.在spring的配置文件中加入以下配置: xmlns:task="http://www.springframework.org/ ...

  5. 【定时任务】——Spring定时任务Scheduled

    定时任务在日常开发过程中非常常见,而且在日常的项目开发中也有多种实现方式,而且做任务调度的框架有很多种,小编最近的感受,如果想真正使用好任务调度还是存在困难的,所以分步学习,逐个击破!在这篇文章小编主 ...

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

    1.开篇 spring的@Scheduled定时任务相信大家都是十分熟悉.最近在使用过程中发现了一些问题,写篇文章,和大家分享一下.结论在最后,不想看冗长过程的小伙伴可以直接拉到最后看结论. 2.简单 ...

  7. spring 定时任务@Scheduled详解

    1.注解@Scheduled只能用于满足下面两个条件的方法上: (1)没有返回类型,或者说返回类型为void: (2)没有参数: 2.springBoot 定时任务开启方式和使用形式 Springbo ...

  8. Spring 定时任务@Scheduled用法

    基本用法 @Scheduled 由Spring定义,用于将方法设置为调度任务.如:方法每隔十秒钟被执行.方法在固定时间点被执行等 1. @Scheduled(fixedDelay = 1000)    ...

  9. Spring: 定时任务 @Scheduled 原理分析

    文章目录 简介 01 简单实用 02 原理分析 总结 简介 当一个方法被加上@Schedule注解,然后做一些相关配置,在Spring容器启动之后,这个方法就会按照@Schedule注解的配置周期性或 ...

最新文章

  1. MATLAB格式化输出控制
  2. String.charAT的运用
  3. 当前线程不在单线程单元中,因此无法实例化 ActiveX 控件“8856f961-340a-11d0-a96“...
  4. 【NoSQL】NoSQL入门和概述 - 笔记
  5. [渝粤教育] 中国地质大学 信息资源管理 复习题 (2)
  6. Find命令使用详解
  7. 起点计算机网,《零起点计算机》网第5课.pdf
  8. eclipse插件开发:自定义导航器中的拖拽定义
  9. Ecshop 商品页配送方式添加 实现仿淘宝按地区显示运费
  10. android系统知识(8.0)---Android O 启动优化
  11. 解决清除浮动的最佳办法
  12. 轻量级前端MVVM框架avalon - 初步接触
  13. JavaScript的document对象详解
  14. vue中rule数据校验
  15. 爆料称macOS Ventura正式版预计将于10月最后一周推出 支持新款14/16英寸MacBook Pro
  16. excel文件导出、下载的响应类型设置
  17. Switch语句用法及案例
  18. python 办公自动化 视频教程_先导课-python办公自动化
  19. 分布式系列之分布式计算框架Flink深度解析
  20. img_sec_check 微信图片检测41005

热门文章

  1. 英雄联盟服务器维护公告2019,lol维护到几点今天 英雄联盟维护公告2021最新
  2. chrome 窗体高度_浏览器几种高度宽度
  3. XP停止更新 企业电脑该选择什么安全软件
  4. 产品经理学习网站和工具
  5. 教育就是养成10个良好习惯
  6. it日语 IT日本語(2)
  7. mysql怎么查询函数用法_MYSQL 查询重要函数
  8. angularjs数据重复,查询数据是否存在
  9. 苹果手机的siri在哪里_苹果手机轻敲背面3次自动录音,这个黑科技功能,我真是爱了|苹果手机|手机|siri...
  10. 待人友善是教养 独来独往是性格