From a5b175f8943b1a2477508c9d271315a13cd1818f Mon Sep 17 00:00:00 2001 From: Junjie <xjj@123> Date: 星期四, 19 六月 2025 12:37:28 +0800 Subject: [PATCH] # --- src/main/java/com/zy/common/config/RedisConfig.java | 3 + src/main/java/com/zy/common/utils/RedisUtil.java | 60 ++++++++++++++++++++++++++++-- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 11 +++++ src/main/java/com/zy/common/constant/RedisConstantType.java | 7 +++ 4 files changed, 76 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java index d2252dd..dd29d19 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -14,6 +14,7 @@ import com.zy.asrs.service.*; import com.zy.asrs.utils.Utils; import com.zy.asrs.utils.VersionUtils; +import com.zy.common.constant.RedisConstantType; import com.zy.common.model.LocTypeDto; import com.zy.common.model.MatDto; import com.zy.common.model.SearchLocParam; @@ -22,6 +23,7 @@ import com.zy.common.utils.CollectionUtils; import com.zy.common.utils.HttpHandler; import com.zy.common.utils.News; +import com.zy.common.utils.RedisUtil; import com.zy.core.CrnThread; import com.zy.core.DevpThread; import com.zy.core.cache.MessageQueue; @@ -95,6 +97,8 @@ private WrkMastLogService wrkMastLogService; @Autowired private ConfigService configService; + @Autowired + private RedisUtil redisUtil; @Value("${wms.url}") private String wmsUrl; @@ -656,6 +660,11 @@ continue; } + Object object = redisUtil.get(RedisConstantType.CRN_MOVE_LOCK); + if (object != null) { + continue; + } + List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>() .eq("crn_no", crn.getId())); if (!wrkMasts.isEmpty()) { @@ -681,6 +690,8 @@ News.error("鍫嗗灈鏈虹Щ鍔ㄥ懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", crnProtocol.getCrnNo(), JSON.toJSON(crnCommand)); } crnThread.setBackHpFlag(true); + + redisUtil.set(RedisConstantType.CRN_MOVE_LOCK + crn.getId(), "lock", 60); } } } diff --git a/src/main/java/com/zy/common/config/RedisConfig.java b/src/main/java/com/zy/common/config/RedisConfig.java index d356517..cf99252 100644 --- a/src/main/java/com/zy/common/config/RedisConfig.java +++ b/src/main/java/com/zy/common/config/RedisConfig.java @@ -5,6 +5,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.cache.annotation.CachingConfigurerSupport; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.*; import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; @@ -14,7 +15,7 @@ * Redis閰嶇疆绫� * Created by vincent on 2019-12-23 */ -//@Configuration +@Configuration //@EnableCaching // 寮�鍚暟鎹紦瀛樻満鍒� public class RedisConfig extends CachingConfigurerSupport { diff --git a/src/main/java/com/zy/common/constant/RedisConstantType.java b/src/main/java/com/zy/common/constant/RedisConstantType.java new file mode 100644 index 0000000..0cf292a --- /dev/null +++ b/src/main/java/com/zy/common/constant/RedisConstantType.java @@ -0,0 +1,7 @@ +package com.zy.common.constant; + +public class RedisConstantType { + + public static final String CRN_MOVE_LOCK = "CRN_MOVE_LOCK_"; + +} diff --git a/src/main/java/com/zy/common/utils/RedisUtil.java b/src/main/java/com/zy/common/utils/RedisUtil.java index b2df114..41cef35 100644 --- a/src/main/java/com/zy/common/utils/RedisUtil.java +++ b/src/main/java/com/zy/common/utils/RedisUtil.java @@ -2,8 +2,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -13,13 +15,20 @@ * redisTemplate灏佽 * */ -//@Component +@Component public class RedisUtil { - @Autowired - private RedisTemplate<String, Object> redisTemplate; +// @Autowired +// private RedisTemplate<String, Object> redisTemplate; - public RedisUtil(RedisTemplate<String, Object> redisTemplate) { + @Autowired + private RedisTemplate redisTemplate; + + public RedisTemplate getRedisTemplate() { + return redisTemplate; + } + + public RedisUtil(RedisTemplate redisTemplate) { this.redisTemplate = redisTemplate; } @@ -96,6 +105,21 @@ } /** + * 鑾峰彇鍏ㄩ儴鏁版嵁 + * @return + */ + public HashMap<Object, Object> getRedis() { + Set<String> keys = redisTemplate.keys("*"); + HashMap<Object, Object> map = new HashMap<>(); + for (String key : keys) { + Object value = redisTemplate.opsForValue().get(key); + map.put(key, value); + } + + return map;//杩斿洖鍏ㄩ儴鏁版嵁闆嗗悎 + } + + /** * 鏅�氱紦瀛樻斁鍏� * * @param key 閿� @@ -105,6 +129,34 @@ public boolean set(String key, Object value) { try { redisTemplate.opsForValue().set(key, value); + long start = System.currentTimeMillis(); + while (System.currentTimeMillis() - start < 10000) {//鏈夋晥鏈�10s + Object o = redisTemplate.opsForValue().get(key); + if (o == null) { + continue; + } + + if (o.equals(value)) { + break; + } + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 鏅�氱紦瀛樻斁鍏�-寮傛 + * + * @param key 閿� + * @param value 鍊� + * @return true鎴愬姛 false澶辫触 + */ + public boolean setAsync(String key, Object value) { + try { + redisTemplate.opsForValue().set(key, value); return true; } catch (Exception e) { e.printStackTrace(); -- Gitblit v1.9.1