You've already forked VptPassiveAdapter
feat(core): 添加断连检测和命令执行功能
- 新增 ConnError 类型用于区分连接级错误和应用层错误 - 在 sync_task 中将网络请求错误包装为 ConnError - 添加 DisconnectActionConfig 配置结构支持断连操作 - 在配置文件中增加 disconnectAction 配置项 - 实现 executeDisconnectCommand 函数支持跨平台命令执行 - 在主循环中添加断连检测逻辑和阈值判断 - 支持服务器连接恢复时重置断连状态 - 添加详细的日志记录用于断连状态追踪
This commit is contained in:
@@ -12,6 +12,14 @@ import (
|
||||
"net/http"
|
||||
)
|
||||
|
||||
// ConnError 表示与服务器的连接级错误(非 HTTP 应用层错误)
|
||||
type ConnError struct {
|
||||
Err error
|
||||
}
|
||||
|
||||
func (e *ConnError) Error() string { return e.Err.Error() }
|
||||
func (e *ConnError) Unwrap() error { return e.Err }
|
||||
|
||||
func SyncTask() ([]dto.Task, error) {
|
||||
url := config.Config.Api.BaseUrl + "/sync"
|
||||
requestBody := map[string]interface{}{
|
||||
@@ -32,7 +40,7 @@ func SyncTask() ([]dto.Task, error) {
|
||||
resp, err := GetAPIClient().Do(req)
|
||||
if err != nil {
|
||||
logger.Error("发送请求失败", zap.Error(err))
|
||||
return nil, err
|
||||
return nil, &ConnError{Err: err}
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
|
||||
Reference in New Issue
Block a user