feat: Introduce core application structure, configuration, monitoring, and team management features.
This commit is contained in:
@@ -128,8 +128,16 @@ func checkAndAutoAdd() {
|
||||
return
|
||||
}
|
||||
|
||||
// 计算需要多少个 Team(每个 Team 产生 4 个账号)
|
||||
teamsNeeded := (deficit + 3) / 4 // 向上取整
|
||||
// 读取每 Team 成员数配置
|
||||
membersPerTeam := 4
|
||||
if val, _ := database.Instance.GetConfig("monitor_members_per_team"); val != "" {
|
||||
if v, err := strconv.Atoi(val); err == nil && v >= 1 && v <= 10 {
|
||||
membersPerTeam = v
|
||||
}
|
||||
}
|
||||
|
||||
// 计算需要多少个 Team
|
||||
teamsNeeded := (deficit + membersPerTeam - 1) / membersPerTeam // 向上取整
|
||||
|
||||
// 获取可用的 Owner
|
||||
owners, err := database.Instance.GetPendingOwners()
|
||||
@@ -164,13 +172,14 @@ func checkAndAutoAdd() {
|
||||
}
|
||||
}
|
||||
|
||||
// 读取代理配置
|
||||
// 读取代理配置 - 支持代理池模式
|
||||
proxyURL := ""
|
||||
replenishUseProxy := false
|
||||
if val, _ := database.Instance.GetConfig("monitor_replenish_use_proxy"); val == "true" {
|
||||
replenishUseProxy = true
|
||||
}
|
||||
if replenishUseProxy {
|
||||
// 使用全局代理配置(支持 pool:random, pool:id:N 等格式)
|
||||
proxyURL = config.Global.DefaultProxy
|
||||
}
|
||||
|
||||
@@ -180,10 +189,27 @@ func checkAndAutoAdd() {
|
||||
browserType = val
|
||||
}
|
||||
|
||||
// 读取并发 Team 数配置
|
||||
concurrentTeams := 2
|
||||
if val, _ := database.Instance.GetConfig("monitor_concurrent_teams"); val != "" {
|
||||
if v, err := strconv.Atoi(val); err == nil && v >= 1 && v <= 10 {
|
||||
concurrentTeams = v
|
||||
}
|
||||
}
|
||||
|
||||
// 读取入库并发数配置
|
||||
s2aConcurrency := 2
|
||||
if val, _ := database.Instance.GetConfig("monitor_s2a_concurrency"); val != "" {
|
||||
if v, err := strconv.Atoi(val); err == nil && v >= 1 && v <= 4 {
|
||||
s2aConcurrency = v
|
||||
}
|
||||
}
|
||||
|
||||
req := TeamProcessRequest{
|
||||
Owners: reqOwners,
|
||||
MembersPerTeam: 4,
|
||||
ConcurrentTeams: 2,
|
||||
MembersPerTeam: membersPerTeam,
|
||||
ConcurrentTeams: concurrentTeams,
|
||||
S2AConcurrency: s2aConcurrency,
|
||||
IncludeOwner: false,
|
||||
Headless: true,
|
||||
BrowserType: browserType,
|
||||
@@ -192,7 +218,13 @@ func checkAndAutoAdd() {
|
||||
|
||||
// 输出代理使用状态日志
|
||||
if proxyURL != "" {
|
||||
logger.Info(fmt.Sprintf("自动补号: 使用代理 %s", proxyURL), "", "auto-add")
|
||||
displayProxy := proxyURL
|
||||
if proxyURL == "pool:random" {
|
||||
displayProxy = "代理池轮询模式"
|
||||
} else if len(proxyURL) > 8 && proxyURL[:8] == "pool:id:" {
|
||||
displayProxy = fmt.Sprintf("代理池固定项 (ID: %s)", proxyURL[8:])
|
||||
}
|
||||
logger.Info(fmt.Sprintf("自动补号: 使用代理 %s", displayProxy), "", "auto-add")
|
||||
} else {
|
||||
logger.Info("自动补号: 未使用代理", "", "auto-add")
|
||||
}
|
||||
@@ -209,7 +241,8 @@ func checkAndAutoAdd() {
|
||||
// 异步执行
|
||||
go runTeamProcess(req)
|
||||
|
||||
logger.Success(fmt.Sprintf("自动补号任务已启动: %d 个 Team (浏览器: %s)", actualTeams, browserType), "", "auto-add")
|
||||
logger.Success(fmt.Sprintf("自动补号任务已启动: %d 个 Team, 每 Team %d 成员, 并发 %d (浏览器: %s)",
|
||||
actualTeams, membersPerTeam, concurrentTeams, browserType), "", "auto-add")
|
||||
}
|
||||
|
||||
// getS2AAccountCount 获取 S2A 当前账号数量
|
||||
|
||||
Reference in New Issue
Block a user