SpringBoot与任务
(1)、异步任务
1 package cn.coreqi; 2 3 import org.springframework.boot.SpringApplication; 4 import org.springframework.boot.autoconfigure.SpringBootApplication; 5 import org.springframework.scheduling.annotation.EnableAsync; 6 7 @EnableAsync //开启异步注解功能 8 @SpringBootApplication 9 public class SpringboottaskApplication { 10 11 public static void main(String[] args) { 12 SpringApplication.run(SpringboottaskApplication.class, args); 13 } 14 15 }
1 package cn.coreqi.service; 2 3 import org.springframework.scheduling.annotation.Async; 4 import org.springframework.stereotype.Service; 5 6 @Service 7 public class UserService { 8 @Async //告诉Spring这是一个异步任务 9 public void addUser(){ 10 11 } 12 }
(2)、定时任务
1 package cn.coreqi; 2 3 import org.springframework.boot.SpringApplication; 4 import org.springframework.boot.autoconfigure.SpringBootApplication; 5 import org.springframework.scheduling.annotation.EnableScheduling; 6 7 @EnableScheduling //开启基于注解的定时任务 8 @SpringBootApplication 9 public class SpringboottaskApplication { 10 11 public static void main(String[] args) { 12 SpringApplication.run(SpringboottaskApplication.class, args); 13 } 14 15 }
1 package cn.coreqi.service; 2 3 import org.springframework.scheduling.annotation.Scheduled; 4 import org.springframework.stereotype.Service; 5 6 @Service 7 public class UserService { 8 @Scheduled(cron = "0 * * * * FRI") //定时任务注解 9 public void addUser(){ 10 11 } 12 }
cron表达式:
顺序 | 字段 | 允许值 | 允许的特殊字符 |
1 | 秒 | 0-59 | ,-*/ |
2 | 分 | 0-59 | ,-*/ |
3 | 时(小时) | 0-23 | ,-*/ |
4 | 日期 | 1-31 | ,-*?/LWC |
5 | 月份 | 1-12 | ,-*/ |
6 | 星期 |
0-7或SUN-SAT 0,7代表SUN |
,-*?/LC# |
特殊字符对照表
特殊字符 | 代表含义 |
, | 枚举 |
- | 区间 |
* | 任意 |
/ | 步长 |
? | 日/星期冲突匹配 |
L | 最后 |
W | 工作日 |
C | 和Calenclar联系后计算过的值 |
# | 星期,4#2代表第2个星期四 |