From f5da7281ee8fed938198afcd33a2a619f08a37f0 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期二, 19 八月 2025 14:27:26 +0800 Subject: [PATCH] 合并代码 --- user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java | 18 ++++++++++++++---- 1 files changed, 14 insertions(+), 4 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 c66740c..b7090e1 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 @@ -19,6 +19,8 @@ import com.supersavedriving.user.modular.system.util.mongodb.model.Location; import com.supersavedriving.user.modular.system.warpper.*; import io.swagger.models.auth.In; +import org.redisson.api.RLock; +import org.redisson.api.RedissonClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; @@ -41,6 +43,7 @@ import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.*; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -77,6 +80,9 @@ @Autowired private RedisUtil redisUtil; + + @Autowired + private RedissonClient redissonClient; @Autowired private MongoTemplate mongoTemplate; @@ -433,8 +439,9 @@ */ @Override public ResultUtil travelOrder(Integer uid, TravelOrder travelOrder) throws Exception { - boolean lock = redisUtil.lock(uid + "_travelOrder"); - if(!lock){ + RLock lock1 = redissonClient.getLock("travelOrder:" + uid); + boolean lock2 = lock1.tryLock(5, TimeUnit.SECONDS); + if(!lock2){ return ResultUtil.error("系统繁忙,请稍后重试"); } try { @@ -537,7 +544,10 @@ pushUtil.pushOrderInfo(order.getDriverId(), 2, pushOrderInfoWarpper); }else{ //推单 - pushOrder(order.getId()); + Order finalOrder = order; + new Thread(()->{ + pushOrder(finalOrder.getId()); + }).start(); } } } @@ -546,7 +556,7 @@ }catch (Exception e){ e.printStackTrace(); }finally { - redisUtil.unlock(uid + "_travelOrder"); + lock1.unlock(); } return ResultUtil.error("系统异常"); } -- Gitblit v1.7.1