Skip to content

四、SpringTask

提示

Spring Task 是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。

应用场景:

  • 信用卡每月还款提醒
  • 银行贷款每月还款提醒
  • 火车票售票系统处理未支付订单
  • 入职纪念日为用户发送通知

一、cron表达式

信息

cron表达式其实就是一个字符串,通过cron表达式可以定义任务触发的时间构成规则:

分为6或7个域,由空格分隔开,每个域代表一个含义每个域的含义分别为:秒、分钟、小时、日、月、周、年(可选)

使用cron表达式描述:2022年8月12日4时0分0秒

分钟小时
004128?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