当前位置: 首页 > news >正文

【springboot】springboot定时任务:

文章目录

        • 一、文档:
        • 二、案例:


一、文档:

【cron表达式在线生成器】https://cron.qqe2.com/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、案例:

在这里插入图片描述

@EnableScheduling //开启任务调度

在这里插入图片描述

package com.sky.task;import com.sky.entity.Orders;
import com.sky.mapper.OrderMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.util.List;/*** 定时任务类,定时处理订单状态*/
@Component
@Slf4j
public class OrderTask {@Autowiredprivate OrderMapper orderMapper;/*** 处理超时订单的方法*/@Scheduled(cron = "0 * * * * ? ") //每分钟触发一次public void processTimeoutOrder(){log.info("定时处理超时订单:{}", LocalDateTime.now());LocalDateTime time = LocalDateTime.now().plusMinutes(-15);// select * from orders where status = ? and order_time < (当前时间 - 15分钟)List<Orders> ordersList = orderMapper.getByStatusAndOrderTimeLT(Orders.PENDING_PAYMENT, time);if(ordersList != null && ordersList.size() > 0){for (Orders orders : ordersList) {orders.setStatus(Orders.CANCELLED);orders.setCancelReason("订单超时,自动取消");orders.setCancelTime(LocalDateTime.now());orderMapper.update(orders);}}}/*** 处理一直处于派送中状态的订单*/@Scheduled(cron = "0 0 1 * * ?") //每天凌晨1点触发一次public void processDeliveryOrder(){log.info("定时处理处于派送中的订单:{}",LocalDateTime.now());LocalDateTime time = LocalDateTime.now().plusMinutes(-60);List<Orders> ordersList = orderMapper.getByStatusAndOrderTimeLT(Orders.DELIVERY_IN_PROGRESS, time);if(ordersList != null && ordersList.size() > 0){for (Orders orders : ordersList) {orders.setStatus(Orders.COMPLETED);orderMapper.update(orders);}}}
}

在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/145052.html

相关文章:

  • 腾讯云学生服务器申请、学生认证入口及学生机价格表
  • pip安装mysqlclient依赖报错 /bin/sh: 1: mysql_config: not found如何解决
  • 基于paddleocr的版面分析
  • 网工内推 | IT网工,华为、华三认证优先,15k*13薪
  • leetcode 739. 每日温度
  • 【活体检测模型】活体检测思路推演
  • 【微服务部署】03-健康检查
  • SQL注入之报错注入
  • 基于大数据+django+mysql的银行信用卡用户的数仓系统
  • 【网络】多路转接——五种IO模型 | select
  • sql顺序倒序查询
  • java和sql生成时间维度数据
  • HUT23级训练赛
  • sm4 加解密算法工具类( Java 版 )
  • Redis项目实战——商户查询缓存
  • 重磅OpenAI发布ChatGPT企业版本
  • # Go学习-Day7
  • uniapp-form表单
  • 漏洞挖掘-利用
  • React钩子函数之useDeferredValue的基本使用
  • lodash常用方法
  • QByteArray与结构体之间相互转换
  • npm如何安装淘宝镜像
  • 从项目中突显技能:在面试中讲述你的编程故事
  • python的观察者模式案例
  • C语言——类型转换
  • jmeter性能测试入门完整版
  • 报错sql_mode=only_full_group_by
  • 伪造 IP 地址的原理和防范措施
  • Linux通过libudev获取挂载路径、监控U盘热拔插事件、U盘文件系统类型