切换主题
四、SpringTask
提示
Spring Task 是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。
应用场景:
- 信用卡每月还款提醒
- 银行贷款每月还款提醒
- 火车票售票系统处理未支付订单
- 入职纪念日为用户发送通知
一、cron表达式
信息
cron表达式其实就是一个字符串,通过cron表达式可以定义任务触发的时间构成规则:
分为6或7个域,由空格分隔开,每个域代表一个含义每个域的含义分别为:秒、分钟、小时、日、月、周、年(可选)
使用cron表达式描述:2022年8月12日4时0分0秒
秒 | 分钟 | 小时 | 日 | 月 | 周 | 年 |
---|---|---|---|---|---|---|
0 | 0 | 4 | 12 | 8 | ? | 2022 |
其中周和日不能同时附上值,俩值会互斥
在线生成器:https://cron.qqe2.com/
二、基础使用
1、入口启动类配置@EnableScheduling
java
@SpringBootApplication
@Slf4j
@EnableScheduling //开启任务调度
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
log.info("服务端启动!");
}
}
2、新建task
文件夹和文件
java
@Component
@Slf4j
public class CouponTask {
@Scheduled(cron = "* * * * * ?")
public void checkExpiredOrders() {
log.info("CouponTask.couponTask");
}
}
3、启动
控制台打印
2024-08-19T14:56:30.001+08:00 INFO 24640 --- [ scheduling-1] com.hdq.task.CouponTask : CouponTask.couponTask
2024-08-19T14:56:31.012+08:00 INFO 24640 --- [ scheduling-1] com.hdq.task.CouponTask : CouponTask.couponTask
2024-08-19T14:56:32.016+08:00 INFO 24640 --- [ scheduling-1] com.hdq.task.CouponTask : CouponTask.couponTask