跳转到内容

Session Lock

Session Lock 确保你的 Agent 在整个任务过程中使用同一个出口 IP 地址,从而与目标网站保持会话连续性。

许多网站按 IP 跟踪会话。如果你的 IP 在任务中途发生变化:

  • 购物车会被清空
  • 登录会话会过期
  • 多页爬取会被标记为可疑
  • 账户操作会触发安全告警
proxy = client.get_proxy(
target="amazon.com",
session_lock=True # ← 启用 session lock
)
# 通过该代理的所有请求都使用同一个 IP
for page in range(1, 50):
requests.get(f"https://amazon.com/s?page={page}", proxies=proxy.to_dict())
# 每次都是同一个 IP ↑

当你启用 session_lock=True 时:

  1. HydraSkill 从代理池中分配一个专属 IP
  2. 该 IP 专为你的会话保留
  3. 你的会话活跃期间,其他用户无法获得该 IP
  4. 该 IP 会一直保持,直到你调用 proxy.release() 或会话超时

会话在无活动(无请求)30 分钟后自动过期。你可以进行配置:

proxy = client.get_proxy(
target="amazon.com",
session_lock=True,
session_ttl=3600 # 1 小时超时
)

当 Session Lock 与 Auto-Heal 结合使用时,如果你锁定的 IP 被封锁:

  1. HydraSkill 检测到封锁(403、CAPTCHA、连接重置)
  2. 自动从同一地区分配一个新 IP
  3. 透明地更新会话绑定
  4. 你的下一个请求会通过新 IP —— 无需改动任何代码

会话不会中断。你的 Agent 永远不会看到这次失败。

  • 多页任务(分页、结算流程)启用 Session Lock
  • 对于 IP 一致性无关紧要的一次性请求,禁用它
  • 设置合适的 session_ttl,避免不必要地占用 IP
  • 完成后调用 proxy.release(),将 IP 归还到代理池