首页 > 其他分享 >@Scheduled的cron表达式

@Scheduled的cron表达式

时间:2023-09-09 11:45:34浏览次数:49  
标签:Scheduled 10 每月 cron 零点 day 表达式

@Scheduled生效条件

启动类加上注解@EnableScheduling
定时任务的类加上注解@Component@Service
定时任务的方法加上注解@Scheduled

cron表达式

  ┌───────────── second (0-59)
  │ ┌───────────── minute (0 - 59)
  │ │ ┌───────────── hour (0 - 23)
  │ │ │ ┌───────────── day of the month (1 - 31)
  │ │ │ │ ┌───────────── month (1 - 12) (or JAN-DEC)
  │ │ │ │ │ ┌───────────── day of the week (0 - 7)
  │ │ │ │ │ │          (0 or 7 is Sunday, or MON-SUN)
  │ │ │ │ │ │
  * * * * * *

L: 表示last最后一个,在不同的字段中含义不一样

  1. 在第4个字段day of month中表示月的最后一天,如果L后面有一个负数(L-n)表示该月的第n天到最后一天
  2. 在第6个字段day of week中表示周的最后一天,如果前缀有数字或3个字母,即 dL 或 DDDL 表示该月的最后一个周几, 1L 或 MONL 表示该月的最后一个周一

W: 工作日,用在第4个字段中,如果前缀是一个数字,即nW,表示距离天n最近的工作日,LW表示该月的最后一个工作日
示例: 9W 表示距离9号最近的工作日

  1. 如果9号是工作日,那就9号执行
  2. 如果9号是周六那就提前到周五8号执行
  3. 如果9号是周日,那就推迟到周一10号执行
    注意: 如果n是1,且1号是周六,也会推迟到周一执行,即1W表示每月的第1个工作日

#: 用在第6个字段上,形式可以是 d#n 或 DDD#n表示第n个周几, 如 1#2 或 MON#2 表示该月的第2个周一

示例

0 0 * * * * : 每个整点
*/10 * * * * * : 每10秒
0 0 8-10 * * * : 每天的8,9,10整点
0 0 6,19 * * * : 每天的6点整,19点整
0 0/30 8-10 * * * : 每天当小时是8~10时,每30分钟执行一次,即 8:00, 8:30, 9:00, 9:30, 10:00 和 10:30
0 0 9-17 * * MON-FRI : 周一到周五期间每天的9点到17点的整点
0 0 0 25 12 ? : 每年的12月25号的零点
0 0 0 L * * : 每月最后一天的零点
0 0 0 L-3 * * : 每月的第3天到最后1天的零点
0 0 0 1W * * : 每月第一个工作日的零点
0 0 0 LW * * : 每月最后一个工作日的零点
0 0 0 * * 5L : 每月最后一个周五的零点
0 0 0 * * THUL : 每月最后一个周四的零点
0 0 0 ? * 5#2 : 每月的第2个周五的零点
0 0 0 ? * MON#1 : 每月第1个周一的零点

宏指令

The following macros are also supported:
"@yearly" (or "@annually") to run un once a year, i.e. "0 0 0 1 1 *",
"@monthly" to run once a month, i.e. "0 0 0 1 * *",
"@weekly" to run once a week, i.e. "0 0 0 * * 0",
"@daily" (or "@midnight") to run once a day, i.e. "0 0 0 * * *",
"@hourly" to run once an hour, i.e. "0 0 * * * *".

例如 @Scheduled(cron = "@hourly") 等效于 @Scheduled(cron = "0 0 * * * *")

参考

类:org.springframework.scheduling.support.CronExpression 方法:parse()的注释
CronExpression.parse()

标签:Scheduled,10,每月,cron,零点,day,表达式
From: https://www.cnblogs.com/qode/p/17689113.html

相关文章

  • 绕过PHP正则表达式
    1.字符串拼接绕过【PHP>=7】适合绕过具体关键字payload:(sy.(st).em)(who.ami); 2.字符串转义绕过【PHP>=7】字符串转十六进制、八进制、unicode脚本#-*-coding:utf-8-*-defhex_payload(payload): res_payload='' foriinpayload: i="\\x"+hex(ord(i))[2......
  • 第四章 表达式 <font color = red></font>
    4.1基础运算对象转换类型转换大多数都合乎情理,但是小整数类型(如bool,char,short等)通常会被提升成较大的整数类型,主要是int。重载运算符当运算符作用于类类型的运算对象时,用户可以自行定义其含义。因为这种自定义的过程事实上是为了已存在的运算符赋予了另外一层含义,所......
  • java正则表达式(一)
    转: https://www.cnblogs.com/-w-k-/p/16040896.html一、校验数字的表达式1数字:^[0-9]*$2n位的数字:^\d{n}$3至少n位的数字:^\d{n,}$4m-n位的数字:^\d{m,n}$5零和非零开头的数字:^(0|[1-9][0-9]*)$6非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$7带......
  • C# 日期、时间验证的正则表达式
    yyyy/MM/dd格式^(?<year>\\d{2,4})/(?<month>\\d{1,2})/(?<day>\\d{1,2})$yyyy-MM-dd格式^(?<year>\\d{2,4})-(?<month>\\d{1,2})-(?<day>\\d{1,2})$yyyy.MM.dd格式^(?<year>\\d{2,4})[.](?<month>\\d{1,2})[.]......
  • @Scheduled注解与参数
    基本参数用法@Scheduled由Spring定义,用于将方法设置为调度任务。如:定时执行一次或定时轮询执行一段代码)参数详解1、fixedDelay上一次任务执行完毕时间点之后多长时间再执行,任务的执行要等上一个任务执行结束。@Scheduled(fixedDelay=60*60*1000)  //每隔1小时执行2、fixedRate......
  • 使用re模块的正则表达式 将r'\n ', '[', ']'等剔除
    使用re模块的正则表达式将字符串"['移动类型',\n'物料号',\n'物料描述',\n'批次号',\n'卷号(箱号)',\n'数量',\n'基本计量单位',\n'发料库存地',\n'工厂',\n'记帐日期',\n'凭证日期',\n&......
  • 正则表达式匹配引号
    正则表达式匹配引号1.单引号Stringregex="'";2.双引号反斜杠(\)用于转义双引号字符,以确保它被正则表达式引擎正确解析。Strings=newStringBuilder(in.nextLine()).reverse().toString().replaceAll("\"","");......
  • 正则表达式和sed
    casevarin  模式1|模式1-1)    command。。。    ;;  *)   command...    ;;esacfunction_name(){command...}functionfun_name(){command...}正则表达式:前导字符(位于元字符前的字符);元字符就是在正则里具有特殊含义的特殊字符.:匹配......
  • 正则表达式编译取值法
       还是使用《正则表达式直接取值法》中的例子,这里介绍一下用编译取值法编辑正则表达式取得我们想要的元素。text="姓名:海风,性别:男,年龄:52,账号:12345,密码:6789,作品:<<'双随机'管理系统>>电\\\话:133****5117(常用)"   采用编译取值法匹配全部字符,包......
  • 正则表达式
    正则表达式(RegularExpression)是一种文本模式,包括普通字符(例如,a到z之间的字母)和特殊字符(称为"元字符"),可以用来描述和匹配字符串的特定模式。正则表达式是一种用于模式匹配和搜索文本的工具。正则表达式提供了一种灵活且强大的方式来查找、替换、验证和提取文本数据。正则表达......