什么是定时任务?
定时任务,简要说明就是在指定时间内触发执行某个动作。类似于我们今天晚上12要买个东西,然后你需要定一个闹钟提醒你,告诉你12点你需要买个东西,这个闹钟定时提醒你,就是一种定时任务。
定时任务的应用场景
下订单:30分钟以内实现付款功能 。 下订单:开始定时任务;是否付款,付款,完成订单;没有付款,取消订单。 数据库:定时清理,统计。
使用Schedule实现定时任务
Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每 一个域代表一个含义,Cron有如下两种语法格式: (1) Seconds Minutes Hours DayofMonth Month DayofWeek Year (2)Seconds Minutes Hours DayofMonth Month DayofWeek
字段 | 允许值 | 允许的特殊字 |
---|
秒 | – 0~59的整数 | , - * / 四个字符 | 分 | 0~59的整数 | , - * / 四个字符 | 小时 | 0~23的整数 | , - * / 四个字符 | 日期 | 1~31的整数(但是你需要考虑你月的天数) | ,- * ? / L W C 八个字符 | 月份 | 1~12的整数或者 JAN-DEC | , - * / 四个字符 | 星期 | 1~7的整数或者 SUN-SAT(1=SUN) | , - * ? / L C # 八个字符 | 年(可选,留空) | 1970~2099 | , - * / 四个字符 |
例子
@Configuration
@EnableScheduling
public class MyJobTest {
@Scheduled(cron="0/2 * * * * *")
public void task(){
System.out.println("时间:"+
LocalDateTime.now());
}
}
使用quartz实现定时任务
1、引入jar
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starterquartz</artifactId>
</dependency>
|