Spring Task是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑
定时任务框架、定时自动执行某段Java代码
使用场景
- 信用卡每月还款提醒
- 贷款每月还款
- 处理超时未支付的订单
- 入职纪念日为用户发送通知
例子
@Component
@Slf4j
public class MyTask {
@Scheduled(cron = "0/5 * * * * ?")//每隔五秒
public void executeTask() {
log.info("MyTask execute task{}",new Date());
}
}
corn表达式
cron表达式其实就是一个字符串,通过cron表达式可以定义任务触发的时间构成规则:分为6或7个域,由空格分隔开,每个域代表一个含义每个域的含义分别为:秒、分钟、小时、日、月、周、年(可选)
导入使用
- 导入maven坐标,实际上在spring-context里面
- 启动类添加注解@EnableScheduling开启任务调度
- 自定义定时任务类
@Slf4j
@Component
public class OrderTask {
@Scheduled(cron = "0 * * * * ?")//每分钟一次
public void processTimeoutOrder() {
log.info("定时处理超时订单");
}
@Scheduled(cron = "* * 1 * * ?")//每天凌晨1点
public void processDeliveryOrder(){
log.info("定时处理派送中的订单");
}
}
此时程序运行就会定时执行被注解的方法