- 介绍
Spring Task 是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑
应用场景:信用卡每月还款提醒,银行贷款每月还款提醒,火车票售票系统处理未支付订单,入职纪念日为用户发送通知,只要是需要定时处理的场景都可以使用Spring Task
- cron表达式:
- 详情可以参考cron表达式在线生成器:https://cron.qqe2.com/
-
cron表达式其实就是一个字符串,通过cron表达式可以定义任务触发的时间
构成规则:分为6或7个域,由空格分隔开,每个域代表一个含义
每个域的含义分别为:秒、分钟、小时、日、月、周、年(可选)
SpringTask的使用:
1.导入maven坐标 spring-context,在导入spring-boot核心起步依赖时以关联注入
<!--springboot启动依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency>
2.启动类添加注解 @EnableScheduling 开启任务调度
3.自定义定时任务类
自定义类,创建自定义的方法,此方法没有返回值,在方法上面加入@Scheduled注解,参数为cron,参数值为cron表达式,可以参考cron表达式在线生成器生成
此方法较为灵活,可用于每天定时处理前一个工作日没有结束的订单等工作,用法自己定义
举例,每隔5秒自动输出日志,cron内的参数用空格分割,秒,分,时,日,月,周,年
java">import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;import java.util.Date;/*** 定时任务类*/
@Slf4j
@Component
public class MyTask {/*** 每隔5秒自动输出日志,cron内的参数用空格分割,秒,分,时,日,月,周,年*/@Scheduled(cron = "0/5 * * * * ?")public void Timing(){log.info("每隔5秒自动输出:{}",new Date());}}