From dfd766139d37b0bd038288952cb24df76f4289f9 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Thu, 11 Dec 2025 17:38:56 +0800
Subject: [PATCH] feat(redis): 添加带延迟的Redis读取方法以提高数据一致性

---
 src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java |    2 +-
 src/main/java/com/xcong/excoin/utils/RedisUtils.java                            |   19 ++++++++++++++++++-
 src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/TradeOrderWs.java      |    2 +-
 3 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java b/src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java
index b8f34d0..68f6774 100644
--- a/src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java
@@ -54,7 +54,7 @@
         String state = (String) redisUtils.get(instrumentsStateKey);
         log.info("开始执行操作CaoZuoServiceImpl......{}",state);
 
-        String live = (String) redisUtils.get(TradeOrderWs.ORDERWS_CHANNEL + ":" + CoinEnums.HE_YUE.getCode() + ":state");
+        String live = (String) redisUtils.getWithDelay(TradeOrderWs.ORDERWS_CHANNEL + ":" + CoinEnums.HE_YUE.getCode() + ":state");
         if (!CoinEnums.ORDER_LIVE.getCode().equals( live)){
             log.warn("正在下单中,等待下单结束...");
         }
diff --git a/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/TradeOrderWs.java b/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/TradeOrderWs.java
index 4fa1622..a6604ff 100644
--- a/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/TradeOrderWs.java
+++ b/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/TradeOrderWs.java
@@ -28,7 +28,7 @@
             log.warn("止损了,下次再战...");
             return;
         }
-        String live = (String) redisUtils.get(ORDERWS_CHANNEL + ":" + CoinEnums.HE_YUE.getCode() + ":state");
+        String live = (String) redisUtils.getWithDelay(ORDERWS_CHANNEL + ":" + CoinEnums.HE_YUE.getCode() + ":state");
         if (!CoinEnums.ORDER_LIVE.getCode().equals( live)){
             log.warn("正在下单中,等待下单结束...");
         }
diff --git a/src/main/java/com/xcong/excoin/utils/RedisUtils.java b/src/main/java/com/xcong/excoin/utils/RedisUtils.java
index 1f13559..6110ef3 100644
--- a/src/main/java/com/xcong/excoin/utils/RedisUtils.java
+++ b/src/main/java/com/xcong/excoin/utils/RedisUtils.java
@@ -88,6 +88,9 @@
      * @return 值
      */
     public Object get(String key) {
+        return key == null ? null : redisTemplate.opsForValue().get(key);
+    }
+    public Object getWithDelay(String key) {
         // 在读取前添加短暂延迟
         try {
             Thread.sleep(50); // 等待50ms让Redis同步完成
@@ -103,7 +106,7 @@
      * @param key 键
      * @return 值
      */
-    public String getString(String key) {
+    public String getStringWithDelay(String key) {
         // 在读取前添加短暂延迟
         try {
             Thread.sleep(50); // 等待50ms让Redis同步完成
@@ -117,6 +120,20 @@
         return null;
     }
 
+
+    /**
+     * 普通缓存获取
+     * @param key 键
+     * @return 值
+     */
+    public String getString(String key) {
+        Object obj = key == null ? null : redisTemplate.opsForValue().get(key);
+        if(obj!=null){
+            return obj.toString();
+        }
+        return null;
+    }
+
     /**
      * 普通缓存放入
      * @param key 键

--
Gitblit v1.9.1