【使用Spring Task实现定时任务-订单超时】

介绍

在这里插入图片描述

定时任务: 是指在预定的时间间隔或特定时间点自动执行的计算机任务或程序。
业务场景: 像平时使用淘宝时,在进行订单支付的时候,你又在犹豫要不要买,这个订单会有一个剩余支付时间,如果你没在指定时间内进行支付订单,这个订单就会变成已取消状态,这个业务下的订单状态变更就是使用到了定时器这个概念。

在学习定时任务时,首先要学下cron表达式:cron表达式其实是一个字符串,通过cron表达式可以定义任务触发的时间
构成规则: 分成6或7个域,每个域代表一个含义秒、分钟、小时、日、月、周、年(可选)
测试例子: 2024年1月26日下午16点整

分钟小时
00162612024

这只是一个例子,更多详情请看cron官网:https://cron.qqe2.com/

入门案例

实现

第一步:引入依赖

导入Apache POI的maven坐标。

<dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>${mybatis.spring}</version>
</dependency>

在这个SpringBoot的启动依赖里面就存在了core的依赖

在这里插入图片描述

第二步: 在启动类添加注解@EnableScheduling

第三步:自定义定时任务

代码如下:

/**
 * 自定义定时任务类
 */
@Component
@Slf4j
public class MyTask {

    /**
     * 定时任务 每隔5秒触发一次
     */
    @Scheduled(cron = "0/5 * * * * ?")
    public void executeTask(){
        log.info("定时任务开始执行:{}", new Date());
    }
}

运行效果

随着服务器的启动,定时任务类就会根据cron表达式,定时执行。

在这里插入图片描述

苍穹外卖-订单超时解析

问题分析

业务分析: 这是苍穹外卖进行订单支付时,在一定时间内进行支付,订单状态则会变成已支付;否则则会将订单状态变成已取消。这个业务,则是使用了定时任务进行处理,在每一分钟检查订单,检查那些待支付状态下的订单创建时间是否超过了15min。

在这里插入图片描述

处理方法

在这里插入图片描述

处理结果

在这里插入图片描述

总结

这里就带大家了解了定时任务的概念,还有使用了定时任务框架Spring Task,带大家通过简单案例进行说明,也通过了分析苍穹外卖的订单超时这个业务进行分析,让我们明白了定时任务类的作用跟使用情景。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值