介绍
Spring Task是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。
定位:定时任务框架
作用:定时自动执行某段Java代码
应用场景:信用卡每月还款提醒、银行贷款每月还款提醒、火车票售票系统处理未支付订单、入职纪念日为用户发送通知
强调:只要是需要定时处理的场景都可以使用Spring Task
cron表达式
cron表达式其实就是一个字符串,通过cron表达式可以定义任务触发的时间
构成规则:分为6或7个域,由空格分隔开,每个域代表一个含义:秒、分钟、小时、日、月、周、年(可选),每部分的含义如下表所示:
Spring Task用cron表达式定义执行时间
使用Spring Task需要三步
1、导入maven坐标 spring-context
2). 启动类添加注解 @EnableScheduling开启任务调度
package com.sky;
@SpringBootApplication
@EnableTransactionManagement //开启注解方式的事务管理
@Slf4j
@EnableCaching
//======================新增================
@EnableScheduling
public class SkyApplication {
public static void main(String[] args) {
SpringApplication.run(SkyApplication.class, args);
log.info("server started");
}
}
3). 自定义定时任务类
package com.sky.task;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* 自定义定时任务类
*/
@Component
@Slf4j
public class MyTask {
/**
* 定时任务 每隔5秒触发一次
*/
@Scheduled(cron = "0/5 * * * * ?")
//@Scheduled(fixedRate = 5000)
public void executeTask(){
System.out.println("定时任务开始执行:{}",LocalTime.now());
}
}
功能测试
启动服务,查看日志