说明:Spring原生Task定时任务 只支持6位的Corn表达式且相关方法不得有参数, 所以不支持”年“的,仅支持:秒 分 时 日 月 周

Spring boot 的原生定时任务是单线程的!所以一旦有某一个定时任务阻塞,那么其他的定时任务将不会执行。异步线程池:https://www.zanglikun.com/8723.html

注意:Springboot 在周的表达上与常规的corn表达式不合适

建议指定周X时使用:SUN, MON, TUE, WED, THU, FRI, SAT 代替数字!

如果你是周日执行,常规的Corn表达式周末是1,但是生效的是0

同时:测试的时候,需要提前修改日期,项目启动后,再去修改日期则不生效!

操作步骤

1、启动类里面使用@EnableScheduling 注解开启功能,自动扫描

# 启动类上的注解
@EnableScheduling

2、在要设置定时任务的方法上面加入cron表达式即可

# 方法上的 注解
@Scheduled(cron = "0 0 0-2 * * ?")

搞定

Corn表达式不会写,直接下面,鼠标点了生成

Corn表达式在线生成https://www.bejson.com/othertools/cron/ 如果失效了,直接百度搜索 ”corn在线生成“ 即可

Corn表达式实战:

单位:秒  分  时  日  月    
序号:1   2   3   4   5   6   7


注意:
周的内容是 周日是1 周一是2 ... 周六是7

? 只能用在日和周上面 大意是:不指定的意思。因为“日”有2个属性,月的日号 与 周的周号

* 表示任意时间

- 表示区间 如果在分的单位上为 1-10 那么表示在1分、2分...10分种内都会执行

, 表示或者 如果在分的单位上为 1,10 那么表示在1分、10分钟的时候执行

空格 表示单位间隔 秒后面跟一个空格在紧跟一个分 依次类推

在线生成,可以查看下次执行时间,方便我们确定我们的准确性

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注