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