修复并发账号分配到同一个代理的问题

问题:get_proxy每次返回池中第一个代理,导致并发账号用同一个代理,
容易触发斗鱼/极验风控。

修复:
- 增加_in_use集合,get_proxy取代理时标记为使用中,避免重复分配
- 代理池空但所有代理都在使用中时,允许复用(兜底)
- 新增release_proxy方法,登录完成后归还代理到池
- login.py的finally块中调用release_proxy,确保成功/失败都归还
- mark_bad同时从_in_use移除
This commit is contained in:
yml2213
2026-06-23 01:41:46 +08:00
parent c1c9d186d1
commit 2ccc2a9336
2 changed files with 22 additions and 2 deletions
+4
View File
@@ -313,6 +313,10 @@ class DouyuLogin:
except Exception as e:
logger.error(f"登录失败: {e}")
return LoginResult(success=False, message=str(e))
finally:
# 归还代理到池,让其他账号可以复用
if self.proxy_manager and self._current_proxy_url:
self.proxy_manager.release_proxy(self._current_proxy_url)
def _first_login(self) -> Tuple[str, str, str, dict]:
"""