SpringTask解决定时处理场景问题

Spring Task

介绍

SpringTask:是spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。
只要是需要定时处理的场景都可以使用Spring Task
定位:定时任务框架
作用:定时自动执行某段Java代码

cron表达式

cron表达式就是一个字符串,通过cron表达式可以定义任务触发的时间构成规则:分为6或7个域,由空格分隔开,每个域代表一个含义每个域的含义分别为:秒、分钟、小时、日、月、周、年 (可选)
在这里插入图片描述

2022年10月12日上午9点整对应的cron表达式为:0 09 12 10 ? 2022

在开发中cron表达式可用网页中在线生成器生成

Spring Task使用步骤:
① 导入maven坐标spring-context(已导入)
② 启动类添加注解@EnableScheduling开启任务调度
③ 自定义定时任务类

案例:处理超时订单

@Component
public class OrderTask{
	@Autowierd
	private OrderMapper orderMapper;
	@Scheduled(cron = "0 * * * * ?")//每分钟触发一次
	public void processTimeoutOrder(){
		LocalDateTime time = LocalDateTime.now().plusMinutes(-15);
		List<Orders> ordersList = orderMapper.getByStatusAndOrderTimeLT(Orders.PENDING_PAYMENT,time);		
		if(ordersList != null and ordersList.size > 0){
			for(Orders orders : ordersList){
				orders.setStatus(Orders.CANCELLED);
				orders.setCancelReason("订单超时,自动取消");
				orders.setCancelTime(LocalDateTime.now());
				orderMapper.update(orders);
			}
		}
	}
}
  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值