优化节点连接管理逻辑与日志输出,修改连接错误处理函数的返回值以确保错误处理灵活性
This commit is contained in:
2
gateway/env/env.go
vendored
2
gateway/env/env.go
vendored
@@ -19,7 +19,7 @@ var (
|
||||
AppWebPort uint16 = 8848
|
||||
AppLogMode = "dev"
|
||||
AppExitTimeout = 5 // 等待服务停止的超时时间
|
||||
AppDataTimeout = 10 // 等待数据通道连接的超时时间
|
||||
AppDataTimeout = 20 // 等待数据通道连接的超时时间
|
||||
AppUserRWTimeout = 10 // 等待用户连接读写超时时间
|
||||
AppDataRWTimeout = 10 // 等待数据通道读写超时时间
|
||||
AppCtrlRWTimeout = 10 // 等待控制通道读写超时时间
|
||||
|
||||
@@ -107,7 +107,7 @@ func processCtrlConn(_ctx context.Context, conn net.Conn) (err error) {
|
||||
}
|
||||
|
||||
cmd, err := reader.ReadByte()
|
||||
if ok, err := utils.WarpConnErr(err); !ok {
|
||||
if _, err := utils.WarpConnErr(err); err != nil {
|
||||
errCh <- err
|
||||
return
|
||||
}
|
||||
|
||||
@@ -121,7 +121,7 @@ func processDataConn(ctx context.Context, edge net.Conn) error {
|
||||
_, err := io.Copy(user, reader)
|
||||
switch {
|
||||
case errors.Is(err, net.ErrClosed):
|
||||
slog.Debug("节点连接意外关闭")
|
||||
slog.Warn("节点连接意外关闭")
|
||||
case err != nil:
|
||||
slog.Error("读取节点数据失败", "err", err)
|
||||
default:
|
||||
@@ -136,7 +136,7 @@ func processDataConn(ctx context.Context, edge net.Conn) error {
|
||||
_, err := io.Copy(edge, teeUser)
|
||||
switch {
|
||||
case errors.Is(err, net.ErrClosed):
|
||||
slog.Debug("用户连接意外关闭")
|
||||
slog.Warn("用户连接意外关闭")
|
||||
case err != nil:
|
||||
slog.Error("读取用户数据失败", "err", err)
|
||||
default:
|
||||
|
||||
@@ -210,14 +210,15 @@ func startTask(ctx context.Context) error {
|
||||
if len(updates) == 0 {
|
||||
continue
|
||||
}
|
||||
err := app.Update(updates)
|
||||
lock.Lock()
|
||||
clear(updates)
|
||||
updates = updates[:0]
|
||||
lock.Unlock()
|
||||
err := app.Update(updates)
|
||||
if err != nil {
|
||||
slog.Error("调度更新任务失败", "err", err)
|
||||
} else {
|
||||
clear(updates)
|
||||
updates = updates[:0]
|
||||
}
|
||||
lock.Unlock()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user