这是indexloc提供的服务,不要输入任何密码
Skip to content

feat: 实现代理健康检查功能 #244

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 25, 2025

Conversation

icesixgod
Copy link
Contributor

添加完整的代理检测系统,包括:

后端功能:

  • 新增代理检测服务模块 (app/service/proxy/)
    • ProxyCheckService: 核心检测逻辑,支持HTTP/HTTPS/SOCKS5代理
    • 内置缓存机制,避免重复检测 (10秒缓存期)
    • 支持并发检测,可配置最大并发数
  • 新增4个API端点 (app/router/config_routes.py):
    • POST /api/config/proxy/check - 单个代理检测
    • POST /api/config/proxy/check-all - 批量代理检测
    • GET /api/config/proxy/cache-stats - 缓存统计
    • POST /api/config/proxy/clear-cache - 清空缓存

前端功能:

  • 代理列表中每项添加状态图标和检测按钮
  • 支持单个代理实时检测
  • 新增检测所有代理功能按钮
  • 代理检测结果模态框,显示:
    • 检测进度条和状态
    • 可用/不可用代理统计
    • 详细的检测结果列表(响应时间、错误信息)
    • 重试失败代理功能

技术特性:

  • 10秒超时机制,避免长时间等待
  • 异步并发检测,提升批量检测效率
  • 缓存机制减少重复请求
  • 完整的错误处理和用户友好提示
  • 响应式UI设计,支持实时状态更新
image

添加完整的代理检测系统,包括:

后端功能:
- 新增代理检测服务模块 (app/service/proxy/)
  * ProxyCheckService: 核心检测逻辑,支持HTTP/HTTPS/SOCKS5代理
  * 内置缓存机制,避免重复检测 (10秒缓存期)
  * 支持并发检测,可配置最大并发数
- 新增4个API端点 (app/router/config_routes.py):
  * POST /api/config/proxy/check - 单个代理检测
  * POST /api/config/proxy/check-all - 批量代理检测
  * GET /api/config/proxy/cache-stats - 缓存统计
  * POST /api/config/proxy/clear-cache - 清空缓存

前端功能:
- 代理列表中每项添加状态图标和检测按钮
- 支持单个代理实时检测
- 新增检测所有代理功能按钮
- 代理检测结果模态框,显示:
  * 检测进度条和状态
  * 可用/不可用代理统计
  * 详细的检测结果列表(响应时间、错误信息)
  * 重试失败代理功能

技术特性:
- 10秒超时机制,避免长时间等待
- 异步并发检测,提升批量检测效率
- 缓存机制减少重复请求
- 完整的错误处理和用户友好提示
- 响应式UI设计,支持实时状态更新
@snailyp snailyp merged commit 4eed3a4 into snailyp:main Jul 25, 2025
Copy link
Owner

@snailyp snailyp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR, this is a really great feature!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants