21:30-05:10 每隔3分钟执行一次
“?”字符:表示不确定的值
“,”字符:指定数个值
“-”字符:指定一个值的范围
“/”字符:指定一个值的增加幅度。n/m表示从n开始,每次增加m
“L”字符:用在日表示一个月中的最后一天,用在周表示该月最后一个星期X
“W”字符:指定离给定日期最近的工作日(周一到周五)
“#”字符:表示该月第几个周X。6#3表示该月第3个周五
————————————————
版权声明:本文为CSDN博主「新时代农民工James」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_48692664/article/details/121860360
常规思路 根据小时21-5 3分钟一次去实现,
@Scheduled(corn = "0 3 21-5 * * ?")
这样写实现出来的效果是 21点到5点每三分钟执行一次
先考虑21:30,分钟肯定不是从0分钟开始的,我们需要设置一个分钟的起点,
@Scheduled(corn = "0 30/3 21-5 * * ?")
这样写出来的效果会发现是: 21点到5点,每个小时的第三十分钟开始 每三分钟执行一次
所以需要将两个时间段分开 这里就提到@Scheduled特性,支持多个@Scheduled在同一个任务,所以将任务分为 21:30-21:59 以及22:00 - 4:59,考虑到还有5:10,增加一个时间段 5:00-5:10
@Scheduled(corn = "0 30/3 21 * * ?")
@Scheduled(corn = "0 */3 22-4 * * ?")
@Scheduled(corn = "0 3/0-10 5 * * ?")
注意这个写法,指的是0-10分钟内,每3 执行一次
Springboot 不支持22-4 只能分成 22-23 0-4
@Scheduled(cron = "0 30/3 21 * * ?")
@Scheduled(cron = "0 */3 22-23 * * ? ")
@Scheduled(cron = "0 */3 0-4 * * ? ")
@Scheduled(cron = "0 0-10/3 5 * * ? ")
上一篇: 盘点十款掌酷十三张到底有没有挂!(其实是有挂)-知乎
下一篇:欧股集体收涨