java订单超时取消设计_订单超时30分钟自动取消
@Configuration //1.主要用于标记配置类,兼备Component的效果。
@EnableScheduling // 2.开启定时任务
public class OrderCancelTask {
Logger logger = LoggerFactory.getLogger(OrderCancelTask.class);
@Value("${web.order-create-time-key}")
private String ORDERS_CREATE_TIME_KEY;
@Autowired
private OrdersInfoService ordersInfoService;
//3.添加定时任务
//@Scheduled(cron = "0/5 * * * * ?")
//或直接指定时间间隔,例如:5秒
@Scheduled(fixedRate=5000)
public void configureTasks() {
logger.info("自动取消超时未支付订单任务开始...");
List cancelOrder = new ArrayList<>();
List orderNos = (List) RedisClient.get(ORDERS_CREATE_TIME_KEY);
if (orderNos != null && orderNos.size()>0){
for (String orderNo : orderNos){
String no = orderNo.substring(0,orderNo.indexOf("-"));
String time = orderNo.substring(orderNo.indexOf("-")+1);
Long orderTime = Long.parseLong(time);
Long now = new Date().getTime();
if (now - orderTime > 1000){
logger.info("自动取消超时未支付订单: " + no + ",订单时间:" +time);
ordersInfoService.orderTimeOut(no);
cancelOrder.add(orderNo);
}
}
orderNos.removeAll(cancelOrder);
}
RedisClient.set(ORDERS_CREATE_TIME_KEY,orderNos,-1);
}
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)