场景:在实际项目中,定时任务的应用非常广泛,比如一些视频网站,购买会员后,每天会给会员送成长值,每个月会送电影卷;比如定时生成报表、邮件;比如一些定时清理数据的任务。
用法:spring的定时任务用起来非常简单,下面主要说在spring boot项目中的用法。
1.首先我们要在启动类上添加@EnableScheduling,去开启定时任务。
2.接着我们要在需要定时执行的方法上,添加@Schedule注解。
一般有三种定时方式:
- fixedDelay ,等当前任务执行完后的设定时间间隔后,执行下一次。
- fixedRate,不管执行任务用了多长时间,都是设定时间间隔后,执行下一次。
- cron表达式,固定的时间点执行,比如每天的3点15执行
Cron表达式是一个字符串,是由空格隔开的6或7个域组成,每一个域对应一个含义(秒 分 时 每月第几天 月 星期 年)其中年是可选字段。
例子:
- 0 0 4 * * ? 每天4点执行
- 0 4 4 * * ? 每天4点4分执行
- 0 4 4 ? * * 每天4点4分执行,同上
- 0 5/10 4 * * ? 每天4点的 5分,15分,25分,35分,45分,55分这几个时间点执行
- 0 10 3 ? * 1 每周星期天,3点10分 执行,注:1表示星期天
- 0 10 3 ? * 1#3 每个月的第三个星期,星期天 执行,注:#号只能出现在星期的位置