From 66441d41b66f2f3398f14741710da1f620c8b965 Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Wed, 31 May 2023 04:39:10 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E9=87=8D=E5=86=99=E9=83=A8=E5=88=86?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/hamster3/mc/plugin/ball/common/api/BallAPI.java | 6 +++--- .../mc/plugin/ball/common/connector/BallChannelHandler.java | 6 ++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/hamster-ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/api/BallAPI.java b/hamster-ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/api/BallAPI.java index b52ebfa..9278ed8 100644 --- a/hamster-ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/api/BallAPI.java +++ b/hamster-ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/api/BallAPI.java @@ -261,7 +261,7 @@ public abstract class BallAPI { } } - public void reconnect(int ttl) { + public void reconnect(int tryCount) { if (!enabled) { return; } @@ -269,7 +269,7 @@ public abstract class BallAPI { return; } channel = null; - if (ttl <= 0) { + if (tryCount <= 0) { for (BallListener listener : getListeners()) { try { listener.onServiceDead(); @@ -292,7 +292,7 @@ public abstract class BallAPI { } catch (InterruptedException e) { e.printStackTrace(); } - reconnect(ttl - 1); + reconnect(tryCount - 1); } protected void disable() throws SQLException, InterruptedException { diff --git a/hamster-ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/connector/BallChannelHandler.java b/hamster-ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/connector/BallChannelHandler.java index 8a3ff60..bfa247c 100644 --- a/hamster-ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/connector/BallChannelHandler.java +++ b/hamster-ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/connector/BallChannelHandler.java @@ -12,6 +12,7 @@ import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; import org.jetbrains.annotations.NotNull; +import java.net.SocketAddress; import java.util.logging.Level; @ChannelHandler.Sharable @@ -180,12 +181,13 @@ public class BallChannelHandler extends SimpleChannelInboundHandler { public void channelInactive(@NotNull ChannelHandlerContext context) { context.close(); BallAPI.getInstance().getLogger().warning("与服务器 " + context.channel().remoteAddress() + " 的连接已断开."); - BallAPI.getInstance().reconnect(5); + CoreUtils.WORKER_EXECUTOR.submit(() -> BallAPI.getInstance().reconnect(5)); } @Override public void exceptionCaught(ChannelHandlerContext context, Throwable cause) { - BallAPI.getInstance().getLogger().log(Level.WARNING, "与服务器 " + context.channel().remoteAddress() + " 通信时出现了一个错误: ", cause); + SocketAddress address = context.channel().remoteAddress(); + BallAPI.getInstance().getLogger().log(Level.WARNING, "与服务器 " + address + " 通信时出现了一个错误: ", cause); for (BallListener listener : BallAPI.getInstance().getListeners()) { try { listener.onConnectException(cause);