定时任务的应用
定时消息的通知、业务数据的定时结算、缓存数据的定时更新等。
实现方法
- 使用Java自带的java.util.Timer类
- 使用Quartz(一个功能比较强大的调度器,当然使用起来也相对麻烦)
- 使用Spring框架自带的Schedule模块
执行方式
定时任务执行方式可分为:单线程(串行)和多线程(并行)。
如何使用
- 启动类上增加
@EnableScheduling
注解来开启定时任务功能。 @Scheduled
设置任务定时执行
Cron表达式简介
@Scheduled(cron = "0 0 10 ? * FRI")
:每个星期五早上10点触发
- cron的表达式是字符串,由7个子表达式构成
- cron有6~7个空格分隔的时间元素,按顺序依次是“
秒 分 时 天 月 星期 年
”,其中年是一个可以不配置的元素。 - 如
?
和*
,这里因为天和星期会产生定义上的冲突,所以往往会以通配符?表示,它表示不指定值,而*则表示任意的月