后端学习笔记-Spring Task

Spring Task

介绍

cron表达式

cron表达式生成网站

使用

java 复制代码
/**
 *  自定义定时任务类
 */
@Component
@Slf4j
public class MyTask {
    /**
     * 测试定时任务
     */
    @Scheduled(cron = "0/5 * * * * ? ")
    public void myTask(){
        log.info("定时任务开始执行:{}",new Date());
    }
}

实例

定时处理订单状态

java 复制代码
/**
 * 订单状态定时任务
 */
@Component
@Slf4j
public class OrderTask {

    @Autowired
    private OrderMapper orderMapper;

    /**
     * 处理超时订单
     */
    @Scheduled(cron = "0 * * * * ? ")
    public void processTimeoutOrder() {
        log.info("处理超时订单:{}", LocalDateTime.now());
        List<Orders> orderlist = orderMapper.getByStatusAndOrderTime(Orders.PENDING_PAYMENT,
                LocalDateTime.now().plusMinutes(-15));
        if(orderlist != null && orderlist.size() > 0){
            List<Long> ids = orderlist.stream().map(x->{
                return x.getId();
            }).collect(Collectors.toList());
            orderMapper.updateStatusCancelByIds(ids, Orders.CANCELLED,MessageConstant.ORDER_PAYMENT_TIMEOUT,LocalDateTime.now());
        }
    }

    /**
     * 处理一直派送订单
     */
    @Scheduled(cron = "0 0 1 * * ? ")
    public void processCompletionOrder() {
        log.info("定时处理派送订单:{}", LocalDateTime.now());
        List<Orders> orderlist = orderMapper.getByStatusAndOrderTime(Orders.DELIVERY_IN_PROGRESS,
                LocalDateTime.now().plusMinutes(-60));
        if(orderlist != null && orderlist.size() > 0){
            List<Long> ids = orderlist.stream().map(x->{
                return x.getId();
            }).collect(Collectors.toList());
            orderMapper.updateStatusCompletedByIds(ids, Orders.COMPLETED,LocalDateTime.now());
        }
    }
}
相关推荐
宇木灵1 天前
C语言基础学习-二、运算符
c语言·开发语言·学习
weixin_458872611 天前
东华复试OJ每日3题打卡·复盘91~93
学习
hqyjzsb1 天前
企业AI人才库的搭建体系与长效运营管理方案
人工智能·学习·职场和发展·创业创新·学习方法·业界资讯·改行学it
winfreedoms1 天前
ROS2语音&ai与控制——黑马程序员ROS2课程上课笔记(6)
人工智能·笔记
执于代码1 天前
IEDA工具总结笔记
笔记
我命由我123451 天前
Photoshop - Photoshop 工具栏(67)修补工具
学习·ui·职场和发展·求职招聘·职场发展·学习方法·photoshop
山岚的运维笔记1 天前
SQL Server笔记 -- 第72章:隔离级别与锁定
数据库·笔记·后端·sql·microsoft·sqlserver
DeepModel1 天前
第15章 多模态学习
深度学习·学习·机器学习
不吃橘子的橘猫1 天前
《集成电路设计》复习资料2(设计基础与方法)
学习·算法·fpga开发·集成电路·仿真·半导体
じ☆冷颜〃1 天前
从确定性算子到随机生成元:谱范式的演进
经验分享·笔记·线性代数·矩阵·抽象代数