From e45e705c22df5bc979e72db6014dd1ff9637be42 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 24 Jun 2026 22:21:58 +0800
Subject: [PATCH] fix(okx): 修复网格交易成交日志记录问题
---
src/main/java/com/xcong/excoin/modules/okxApi/OkxKlineWebSocketClient.java | 22 +++++++++++-----------
1 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/okxApi/OkxKlineWebSocketClient.java b/src/main/java/com/xcong/excoin/modules/okxApi/OkxKlineWebSocketClient.java
index 33b26f0..1bd14b6 100644
--- a/src/main/java/com/xcong/excoin/modules/okxApi/OkxKlineWebSocketClient.java
+++ b/src/main/java/com/xcong/excoin/modules/okxApi/OkxKlineWebSocketClient.java
@@ -4,7 +4,6 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xcong.excoin.modules.okxApi.wsHandler.OkxChannelHandler;
-import com.xcong.excoin.modules.okxNewPrice.utils.SSLConfig;
import lombok.extern.slf4j.Slf4j;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
@@ -14,15 +13,11 @@
import java.net.URI;
import java.net.URISyntaxException;
import java.nio.charset.StandardCharsets;
-import java.text.SimpleDateFormat;
-import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Base64;
-import java.util.Date;
import java.util.List;
-import java.util.TimeZone;
import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
@@ -136,8 +131,11 @@
/** 私有频道连接状态 */
private final AtomicBoolean isPrivateConnected = new AtomicBoolean(false);
- /** 连接中标记,防重入 */
- private final AtomicBoolean isConnecting = new AtomicBoolean(false);
+ /** 公开频道连接中标记,防重入 */
+ private final AtomicBoolean isPublicConnecting = new AtomicBoolean(false);
+
+ /** 私有频道连接中标记,防重入 */
+ private final AtomicBoolean isPrivateConnecting = new AtomicBoolean(false);
/** 初始化标记,防重复 init */
private final AtomicBoolean isInitialized = new AtomicBoolean(false);
@@ -307,7 +305,8 @@
String wsUrl = isPrivate ? config.getWsPrivateUrl() : config.getWsPublicUrl();
String label = isPrivate ? "私有" : "公开";
- if (isConnecting.get() || !isConnecting.compareAndSet(false, true)) {
+ AtomicBoolean connectingFlag = isPrivate ? isPrivateConnecting : isPublicConnecting;
+ if (connectingFlag.get() || !connectingFlag.compareAndSet(false, true)) {
log.info("[OKX-WS] 连接进行中,跳过重复{} WS请求", label);
return;
}
@@ -320,7 +319,7 @@
@Override
public void onOpen(ServerHandshake handshake) {
log.info("[OKX-WS] {} WS连接成功", label);
- isConnecting.set(false);
+ connectingFlag.set(false);
if (isPrivate) {
isPrivateConnected.set(true);
@@ -356,7 +355,7 @@
} else {
isPublicConnected.set(false);
}
- isConnecting.set(false);
+ connectingFlag.set(false);
cancelPongTimeout();
if (sharedExecutor != null && !sharedExecutor.isShutdown() && !sharedExecutor.isTerminated()) {
@@ -377,6 +376,7 @@
@Override
public void onError(Exception ex) {
log.error("[OKX-WS] {} WS发生错误", label, ex);
+ connectingFlag.set(false);
if (isPrivate) {
isPrivateConnected.set(false);
} else {
@@ -394,7 +394,7 @@
}
} catch (URISyntaxException e) {
log.error("[OKX-WS] URI格式错误: {}", wsUrl, e);
- isConnecting.set(false);
+ connectingFlag.set(false);
}
}
--
Gitblit v1.9.1