springboot中SpringTask定时任务的部署

172 阅读2分钟

PixPin_2024-09-03_20-47-15.png

1.功能简述:SpringTask是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。

2.应用场景:①信用卡每月还款提 ②银行贷款每月还款提醒 ③火车票售票系统处理未支付订单 ④入职纪念日为用户发送通知 ⑥.......

3.导入依赖:如果是springboot工程,一般不需要导入,因为这个功能本身的依赖很小,都不足以独自用一个包封装,这个依赖是在:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-json</artifactId>
</dependency>

这个json的相关依赖里面的一部分:

PixPin_2024-09-03_21-27-57.png

在springboot工程启动类上添加启动依赖:

@EnableScheduling//开启springTask定时任务调度

4.技术点---cron表达式:

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

书写规范:

PixPin_2024-09-03_20-33-17.png

备注:cron表达式上的周和日一般不会同时定义时间,两个其中会有一个定义为? 因为:每月有四个周一,每个周一日期都是不一样的,在定义时,不能保证周一是一个固定的日。 也不能保证当前月的周一和下月的周一是一个日,比如这周一是10是一号,但是下月的10号可能就是周二了。

cron表达式生成方式:

直接用网站生成:这里推荐一个cron表达式在线生成器:cron.qqe2.com/

5.最重要的就是要定义一个自定义定时任务类,这个是功能逻辑编写的主要区域。

(QwQ)全部代码展示:

/**
 * 定义定时任务类
 *
 * @param
 * @return
 */
@Component
@Slf4j
public class MyTask {
    /**
     * 定时任务每隔5秒触发一次
     *
     * @param 
     * @return
     */
    @Scheduled(cron = "0/5 * * * * ?")//springTask的设置任务怎么定时出发的表达式
    //其中"0/5 * * * * ?"表示六个或七个变量,用空格隔开,分别表示 秒,分,时,日,月,周,年(可写可以不写)
    //这个里面表示日和周的变量,一般只有一个设置值,另一个设置成?(问号)
    public void executeTask(){
        log.info("定时任务开始执行:{}",new Date());
    }
}

注:@Component ->把类添加到IOC容器之中。@Slf4j这一个注解可以省略,不然会报错!!