콘텐츠로 이동

Auto-Heal

Auto-Heal은 HydraSkill의 자동 페일오버 시스템입니다. IP가 차단되거나 밴되거나 rate limit에 걸리면 HydraSkill이 새 IP로 투명하게 전환합니다. 에이전트는 프록시 오류를 직접 처리할 필요가 없습니다.

HydraSkill은 응답에서 차단 신호를 모니터링합니다.

신호감지 방법
HTTP 403 Forbidden직접 차단
HTTP 429 Too Many Requestsrate limit
CAPTCHA 페이지콘텐츠 분석
연결 리셋네트워크 레벨 차단
빈 응답스텔스 차단
차단 페이지로 리디렉션URL 패턴 매칭
에이전트 요청 → 프록시 → 대상 사이트
↓ (차단됨!)
HydraSkill 감지
새 IP 할당
요청 재시도
에이전트 수신 ← 성공 응답

에이전트 코드는 단순하게 유지됩니다.

# 프록시 오류용 try/except가 필요 없습니다
response = requests.get(url, proxies=proxy.to_dict())
# 첫 IP가 차단됐다면 HydraSkill이 이미 재시도했습니다
proxy = client.get_proxy(
target="amazon.com",
auto_heal=True, # 기본적으로 활성화됨
max_retries=3, # 최대 3회 재시도
retry_delay_ms=500, # 재시도 사이 대기 시간
rotate_on_block=True, # 차단 시 새 IP 획득
)

요청마다 재시도 예산이 있습니다(기본값: 3회). 모든 재시도가 실패하면 HydraSkill은 ProxyExhaustedError를 발생시켜 에이전트가 예외 상황을 처리할 수 있게 합니다.

from hydraskill.exceptions import ProxyExhaustedError
try:
response = requests.get(url, proxies=proxy.to_dict())
except ProxyExhaustedError:
# 모든 재시도 실패 — 대상이 완전히 차단 중일 수 있음
log.warning(f"Could not reach {url} after 3 proxy rotations")

대시보드에서 Auto-Heal 활동을 추적할 수 있습니다.

  • Heal Rate — IP 로테이션이 필요했던 요청의 비율(%)
  • Avg Recovery Time — IP 전환에 걸린 시간(밀리초)
  • Block Sources — 차단을 가장 많이 유발하는 대상

디버깅을 하거나 (차단 응답을 포함한) 원본 응답이 필요할 때:

proxy = client.get_proxy(
target="example.com",
auto_heal=False # 403을 포함한 원본 응답을 그대로 받음
)