feat: 测活覆盖全部代理(含死记录),拨活即复活

ListProxiesDue 去掉 alive=1 限制:死代理每小时也重测,协议级握手
成功就 MarkProxyAlive 复活(fail_count 清零),不再只能等同步时
重新出现在源列表才复活。

附带:提取页加「带协议前缀」开关,复制链接自动带 fmt=url。

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
2026-10-08 19:54:19 +08:00
co-authored by Devin
parent c0a24faf8e
commit 70022f15d6
5 changed files with 12 additions and 8 deletions
+2 -2
View File
@@ -297,8 +297,8 @@ func runProxySync(ctx context.Context, st *store.Store) {
sync.Total, sync.Added, sync.Updated, sync.Removed, failed)
}
// runProxyCheck 测活一轮:取距上次检测超过阈值的存活代理,并发 TCP 拨测;
// 连不上即标记为死(alive=0),死记录超过保留期后物理清除。
// runProxyCheck 测活一轮:取距上次检测超过阈值的全部代理(含死记录,拨活即复活),
// 并发协议级拨测;连不上即标记为死(alive=0),死记录超过保留期后物理清除。
func runProxyCheck(ctx context.Context, st *store.Store) {
if !proxyChecking.CompareAndSwap(false, true) {
return