Spring Task定时任务

目录

介绍

应用场景

cron表达式

使用步骤

示例代码

介绍

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

定位:定时任务框架

应用场景

短信信息提醒

cron表达式

使用步骤

示例代码

复制代码
@Component
@Slf4j
public class OrderTask {

    @Autowired
    private OrderMapper orderMapper;

    //每分钟执行一次.处理订单超时
    @Scheduled(cron = "0 * * * * ?")
    public void processTimeoutOrder() {
        log.info("OrderTask processTimeoutOrder");
        LocalDateTime localDateTime = LocalDateTime.now().plusMinutes(-15);
        List<Orders> ordersList = orderMapper.getByStatusAndOrderTimeLT(Orders.PENDING_PAYMENT, localDateTime);
        if (ordersList != null && ordersList.size() > 0) {
            for (Orders orders : ordersList) {
                orders.setStatus(Orders.CANCELLED);
                orders.setCancelTime(LocalDateTime.now());
                orders.setCancelReason("订单超时,自动取消");
                orderMapper.update(orders);
            }
        }
    }

    //每天凌晨一点触发一次,处理一直派送中的订单
    @Scheduled(cron = "0 0 1 * * ?")
    public void processDeliveryOrder() {
        log.info("OrderTask processDeliveryOrder");
        LocalDateTime localDateTime = LocalDateTime.now().plusMinutes(-60);
        List<Orders> ordersList = orderMapper.getByStatusAndOrderTimeLT(Orders.DELIVERY_IN_PROGRESS, localDateTime);
        if (ordersList != null && ordersList.size() > 0) {
            for (Orders orders : ordersList) {
                orders.setStatus(Orders.COMPLETED);
                orderMapper.update(orders);
            }
        }

    }
}
相关推荐
头发那是一根不剩了19 分钟前
怎么用idea分析hprof文件定位JVM内存问题
java·jvm
让代码飞~24 分钟前
maven项目, idea右上角一直显示gradle的同步标识, 如何去掉
java·maven·intellij-idea
张扬飞舞26 分钟前
IntelliJ IDEA克隆项目失败的解决方法
java·ide·intellij-idea
一只码代码的章鱼37 分钟前
spring -MVC-02
java·spring·mvc
ziyue757543 分钟前
idea启用lombok
java·intellij-idea·idea·lombok·软件
程序员爱钓鱼44 分钟前
匿名函数与闭包(Anonymous Functions and Closures)-《Go语言实战指南》原创
后端·golang
tmacfrank1 小时前
Java 原生网络编程(BIO | NIO | Reactor 模式)
java·开发语言·网络
python算法(魔法师版)1 小时前
.NET NativeAOT 指南
java·大数据·linux·jvm·.net
专注VB编程开发20年1 小时前
VB.NET关于接口实现与简化设计的分析,封装其他类
java·前端·数据库
大数据魔法师2 小时前
Redis(三) - 使用Java操作Redis详解
java·数据库·redis