修复配置更新任务解析失败问题

This commit is contained in:
2025-12-03 15:04:48 +08:00
parent e1e499c19b
commit caa997b95c
3 changed files with 28 additions and 11 deletions

View File

@@ -59,8 +59,14 @@ func HandleRemoveChannel(_ context.Context, task *asynq.Task) (err error) {
return nil
}
func HandleFlushGateway(_ context.Context, task *asynq.Task) (err error) {
func HandleFlushGateway(_ context.Context, task *asynq.Task) error {
start := time.Now()
defer func() {
duration := time.Since(start)
if duration > time.Second {
slog.Warn("更新代理后备配置耗时过长", "time", duration.String())
}
}()
// 获取所有网关:配置组
proxies, err := s.Proxy.AllProxies(m.ProxyTypeBaiYin, true)
@@ -82,12 +88,16 @@ func HandleFlushGateway(_ context.Context, task *asynq.Task) (err error) {
// 获取之前的后备配置
remotes := map[string]int{}
if proxy.Meta != nil {
meta, ok := proxy.Meta.Data().([]g.AutoConfig)
meta, ok := proxy.Meta.Data().([]any)
if !ok {
return fmt.Errorf("解析网关数据失败")
return fmt.Errorf("解析网关数据失败: %T", proxy.Meta.Data())
}
for _, m := range meta {
remotes[fmt.Sprintf("%s:%s:%s", m.Isp, m.Province, m.City)] = m.Count
for _, rawM := range meta {
m, ok := rawM.(map[string]any)
if !ok {
return fmt.Errorf("解析网关数据失败: %T", rawM)
}
remotes[fmt.Sprintf("%s:%s:%s", m["isp"], m["province"], m["city"])] = int(m["count"].(float64))
}
}
@@ -142,6 +152,5 @@ func HandleFlushGateway(_ context.Context, task *asynq.Task) (err error) {
}
}
slog.Debug("更新代理后备配置", "time", time.Since(start).String())
return nil
}