后端学习笔记-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());
        }
    }
}
相关推荐
问心无愧05135 小时前
ctf show web入门111
android·前端·笔记
小宋加油啊7 小时前
学习机械臂相关知识
学习
和平宇宙10 小时前
AI笔记005. hermes-DeepSeek V4 Pro, 128K上下文引发的探索
前端·人工智能·笔记
十月的皮皮10 小时前
C语言学习笔记20260606- 求月份天数三种写法
c语言·笔记·学习
cmes_love10 小时前
Level 2逐笔成交历史数据下载方法笔记
数据库·笔记·oracle
马士兵教育11 小时前
Java还有前景吗?Java+AI大模型学习路线及项目?
java·人工智能·python·学习·机器学习
Cloud_Shy61811 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第五章 Item 30 - 32)
开发语言·人工智能·笔记·python·学习方法
lizhihai_9912 小时前
股市学习心得-AI 产业链核心标的梳理清单
大数据·服务器·人工智能·科技·学习
问心无愧051312 小时前
ctf show web入门110
前端·笔记