From e778f1ec4f911e0b6332432edca4650461ce5870 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期二, 19 八月 2025 17:00:41 +0800 Subject: [PATCH] 修改redis锁 --- user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java | 23 ++++++----------------- 1 files changed, 6 insertions(+), 17 deletions(-) diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java index b7090e1..5e418be 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java @@ -440,7 +440,7 @@ @Override public ResultUtil travelOrder(Integer uid, TravelOrder travelOrder) throws Exception { RLock lock1 = redissonClient.getLock("travelOrder:" + uid); - boolean lock2 = lock1.tryLock(5, TimeUnit.SECONDS); + boolean lock2 = lock1.tryLock(5, 10, TimeUnit.SECONDS); if(!lock2){ return ResultUtil.error("系统繁忙,请稍后重试"); } @@ -568,6 +568,7 @@ * 订单推送逻辑 */ public void pushOrder(Long orderId){ + RLock lock1 = redissonClient.getLock("pushOrder:" + orderId); try { Order order = this.selectById(orderId); /** @@ -577,20 +578,8 @@ * 合适司:积分 > 评分 > 距离 * 3.司机没有接单直接将订单置入大厅 */ - boolean lock = redisUtil.lock(5); - if(!lock){ - int num1 = 1; - while (num1 <= 10){ - Thread.sleep(3000);//等待3秒 - lock = redisUtil.lock(5); - if(lock){ - break; - }else{ - num1++; - } - } - } - if(!lock){ + boolean lock2 = lock1.tryLock(5, 10, TimeUnit.SECONDS); + if(!lock2){ order.setHallOrder(1); this.updateById(order); ExtraPushOrder(order); @@ -786,10 +775,10 @@ ExtraPushOrder(order); redisUtil.setStrValue("lobbyOrder", "true"); } - redisUtil.unlock(); }catch (Exception e){ e.printStackTrace(); - redisUtil.unlock(); + }finally { + lock1.unlock(); } } -- Gitblit v1.7.1