**회수율**: 베이스 _wait_ready 는 '고정 3회 스크롤 → 셀렉터 대기' 순서라, 프록시 지연이 있으면 **아직 아무것도 안 그려진 화면을 스크롤**하고 끝났다. 네이버용으로 순서를 뒤집고 종료 조건을 횟수가 아니라 '카드 수가 더 안 늘어남'으로 바꿨다 — 네트워크가 느리든 빠르든 같은 결과가 나온다. A/B(같은 IP·같은 세션, 3개 쿼리): 14·14·20 = 48건 → **40·40·40 = 120건**(전부 상한 도달). **크롤 프리플라이트**: 웜업 대상에 naver 를 추가하고, 3회 모두 실패하면 로그가 아니라 **알림**을 쏜다. 컨테이너 워커는 크롤이 막혀도 하트비트가 살아 있어 healthy 로 보이고, 잡이 DEAD 로 쌓일 때까지 아무도 모른다(실측). 성공하면 해소 알림으로 자동 정리된다. AlertManager 를 main 에서 만들어 웜업·ops 모니터가 쿨다운 상태를 공유한다. **문서**: operations 에 차단 마커별 대응표(비정상적인 접근=구조적/wtm_captcha=회전)와 '컨테이너 크롤 차단' 절 추가 — 배제한 원인, Rosetta 에뮬 주의(= '이 맥에서만'일 수 있음), 배포 시 확인 순서(warmup 로그 → 호스트 비교 → 워커만 호스트 실행). 테스트 3건 추가(웜업 실패 알림·성공 해소·비크롤 소스 스킵), 전체 223 passed·0 failed. |
||
|---|---|---|
| .. | ||
| ai | ||
| naver_hub | ||
| pipeline | ||
| search | ||
| .gitkeep | ||
| admin_service.py | ||
| lps_service.py | ||
| metrics.py | ||