@Scheduled中fixedDelay、fixedRate、initialDelay和。。。

更新时间:2023-08-08 04:08:04 阅读: 评论:0

@Scheduled中fixedDelay、fixedRate、initialDelay和。。。
⼀、在线Cron表达式⽣成器
⼆、介绍繁琐的近义词
cronExpression定义时间规则,Cron表达式由6或7个空格分隔的时间字段组成:秒 分钟 ⼩时 ⽇期 ⽉份 星期 年(可选);
字段  允许值  允许的特殊字符
秒  0-59     , - * /
分  0-59    , - * /
⼩时 0-23     , - * /
⽇期 1-31     , - * ? / L W C
⽉份 1-12     , - * /
男虎女鼠婚姻是否相配星期 1-7      , - * ? / L C #
年 1970-2099   , - * /
解析:
0/5 * * * * ? : 每5秒执⾏⼀次低碳出行倡议书
“”字符被⽤来指定所有的值。如:""在分钟的字段域⾥表⽰“每分钟”。
音乐教学计划“?”字符只在⽇期域和星期域中使⽤。它被⽤来指定“⾮明确的值”。当你需要通过在这两个域中的⼀个来指定⼀些东西的时候,它是有⽤的。看下⾯的例⼦你就会明⽩。
⽉份中的⽇期和星期中的⽇期这两个元素时互斥的⼀起应该通过设置⼀个问号来表明不想设置那个字段。
“-”字符被⽤来指定⼀个范围。如:“10-12”在⼩时域意味着“10点、11点、12点”。
“,”字符被⽤来指定另外的值。如:“MON,WED,FRI”在星期域⾥表⽰”星期⼀、星期三、星期五”。
“/”字符⽤于指定增量。如:“0/15”在秒域意思是每分钟的0,15,30和45秒。“5/15”在分钟域表⽰每⼩时的5,20,35和50。符号“”在“/”前⾯(如:/10)等价于0在“/”前⾯(如:0/10)。记住⼀条本质:表
中班绘本
达式的每个数值域都是⼀个有最⼤值和最⼩值的集合,如: 秒域和分钟域的集合是0-59,⽇期域是1-31,⽉份域是1-12。字符“/”可以帮助你在每个字符域中取相应的数值。
湿润的近义词如:“7/6”在⽉份域的时候只 有当7⽉的时候才会触发,并不是表⽰每个6⽉。
L是‘last’的省略写法可以表⽰day-of-month和day-of-week域,但在两个字段中的意思不同,例如day-of- month域中表⽰⼀个⽉的最后⼀天。如果在day-of-week域表⽰‘7’或者‘SAT’,如果在day-of-week域中前⾯加上数字,它表⽰ ⼀个⽉的最后⼏天,例
如‘6L’就表⽰⼀个⽉的最后⼀个星期五。
字符“W”只允许⽇期域出现。这个字符⽤于指定⽇期的最近⼯作⽇。例如:如果你在⽇期域中写 “15W”,表⽰:这个⽉15号最近的⼯作⽇。所以,如果15号是周六,则任务会在14号触发。如果15好是周⽇,则任务会在周⼀也就是16号触发。如果 是在⽇期域填
性感内衣美女图片写“1W”即使1号是周六,那么任务也只会在下周⼀,也就是3号触发,“W”字符指定的最近⼯作⽇是不能够跨⽉份的。字符“W”只能配合⼀个 单独的数值使⽤,不能够是⼀个数字段,如:1-15W是错误的。
“L”和“W”可以在⽇期域中联合使⽤,LW表⽰这个⽉最后⼀周的⼯作⽇。
字符“#”只允许在星期域中出现。这个字符⽤于指定本⽉的某某天。例如:“6#3”表⽰本⽉第三周的星期五(6表⽰星期五,3表⽰第三周)。“2#1”表⽰本⽉第⼀周的星期⼀。“4#5”表⽰第五周的星期三。
字符“C”允许在⽇期域和星期域出现。这个字符依靠⼀个指定的“⽇历”。也就是说这个表达式的值依赖于相关的“⽇历”的计算结果,如果没有“⽇历” 关联,则等价于所有包含的“⽇历”。如:⽇期域是“5C”表⽰关联“⽇历”中第⼀天,或者这个⽉开始的第⼀天的后5天。星期域是“1C”表⽰关联“⽇历” 中第⼀天,或者星期的第⼀天的后1天,也就是周⽇的后⼀天(周⼀)。
例⼦如下:
**0 0 10,14,16 * * ? 每天上午10点,下午2点,4点
0 0/30 9-17 * * ? 朝九晚五⼯作时间内每半⼩时
0 0 12 ? * WED 表⽰每个星期三中午12点
“0 0 12 * * ?” 每天中午12点触发
“0 15 10 ? * *” 每天上午10:15触发
“0 15 10 * * ?” 每天上午10:15触发
“0 15 10 * * ? *” 每天上午10:15触发功夫的英语
“0 15 10 * * ? 2005” 2005年的每天上午10:15触发
“0 * 14 * * ?” 在每天下午2点到下午2:59期间的每1分钟触发
“0 0/5 14 * * ?” 在每天下午2点到下午2:55期间的每5分钟触发
“0 0/5 14,18 * * ?” 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
“0 0-5 14 * * ?” 在每天下午2点到下午2:05期间的每1分钟触发
“0 10,44 14 ? 3 WED” 每年三⽉的星期三的下午2:10和2:44触发
“0 15 10 ? * MON-FRI” 周⼀⾄周五的上午10:15触发
“0 15 10 15 * ?” 每⽉15⽇上午10:15触发
“0 15 10 L * ?” 每⽉最后⼀⽇的上午10:15触发
“0 15 10 ? * 6L” 每⽉的最后⼀个星期五上午10:15触发
“0 15 10 ? * 6L 2002-2005” 2002年⾄2005年的每⽉的最后⼀个星期五上午10:15触发
“0 15 10 ? * 6#3” 每⽉的第三个星期五上午10:15触发 **
三、注解参数区别
@Scheduled注解可以控制⽅法定时执⾏,其中有三个参数可选择:
1、fixedDelay控制⽅法执⾏的间隔时间,是以上⼀次⽅法执⾏完开始算起,如上⼀次⽅法执⾏阻塞住了,那么直到上⼀次执⾏完,并间隔给定的时间后,执⾏下⼀次。
2、fixedRate是按照⼀定的速率执⾏,是从上⼀次⽅法执⾏开始的时间算起,如果上⼀次⽅法阻塞住了,下⼀次也是不会执⾏,但是在阻塞这段时间内累计应该执⾏的次数,当不再阻塞时,⼀下⼦把这些全部执⾏掉,⽽后再按照固定速率继续执⾏。
3、cron表达式可以定制化执⾏任务,但是执⾏的⽅式是与fixedDelay相近的,也是会按照上⼀次⽅法结束时间开始算起。
4、initialDelay 。如: @Scheduled(initialDelay = 10000,fixedRate = 15000
这个定时器就是在上⼀个的基础上加了⼀个initialDelay = 10000 意思就是在容器启动后,延迟10秒后再执⾏⼀次定时器,以后每15秒再执⾏⼀次该定时器。

本文发布于:2023-08-08 04:08:04,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1127872.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:字符   时间   指定   表达式   意思   注解   期域   应该
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图