Auto-Heal
Auto-Heal
섹션 제목: “Auto-Heal”Auto-Heal은 HydraSkill의 자동 페일오버 시스템입니다. IP가 차단되거나 밴되거나 rate limit에 걸리면 HydraSkill이 새 IP로 투명하게 전환합니다. 에이전트는 프록시 오류를 직접 처리할 필요가 없습니다.
차단 감지 방식
섹션 제목: “차단 감지 방식”HydraSkill은 응답에서 차단 신호를 모니터링합니다.
| 신호 | 감지 방법 |
|---|---|
| HTTP 403 Forbidden | 직접 차단 |
| HTTP 429 Too Many Requests | rate 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 획득)재시도 예산(Retry Budget)
섹션 제목: “재시도 예산(Retry Budget)”요청마다 재시도 예산이 있습니다(기본값: 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")지표(Metrics)
섹션 제목: “지표(Metrics)”대시보드에서 Auto-Heal 활동을 추적할 수 있습니다.
- Heal Rate — IP 로테이션이 필요했던 요청의 비율(%)
- Avg Recovery Time — IP 전환에 걸린 시간(밀리초)
- Block Sources — 차단을 가장 많이 유발하는 대상
Auto-Heal 비활성화
섹션 제목: “Auto-Heal 비활성화”디버깅을 하거나 (차단 응답을 포함한) 원본 응답이 필요할 때:
proxy = client.get_proxy( target="example.com", auto_heal=False # 403을 포함한 원본 응답을 그대로 받음)